「ttyにアクセスできません。」エラーメッセージを表示したくない場合はどうすればよいですか?

「ttyにアクセスできません。」エラーメッセージを表示したくない場合はどうすればよいですか?

ssh他のサーバーに接続し、そこからいくつかのコマンドを実行するbashスクリプトがあります。一部のウェブサイトのerror()Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.はフレンドリーなメッセージですが、私のbashスクリプトは「停止しました」。このメッセージが表示された後、他のコマンドは実行されません。他のフォーラムではssh -tメッセージの抑制に効果があると推定されていますが、私には効果がありませんでした。私のコードは次のとおりです

.
.
.
stty -echo
sshpass "pwd" ssh -o StrictHostKeyChecking=no [email protected] 'su -lc "rm -rf tmp"' 2>/dev/null
stty echo
.
.
.

私が使用する理由stty-echoは、ユーザーをrootに切り替えてパスワードを端末に表示させる必要があるためです(私はそれを望んでいません)。Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.接続サーバー(ip:1.1.1.1)にrootパスワードを入力しましたが、エラーメッセージ()が表示されました。

どんな提案がありますか?追加の説明が必要な場合はお知らせください。ありがとうございます! (私のbashバージョンはGNU bashバージョン3.2.51(1)です。)

編集する

削除時に表示されるエラーメッセージ2>/dev/nullは次のとおりです。

Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell. 
stty: standard input: Invalid argument

ベストアンサー1

使用前にstdin端末であることを確認できますstty

if [[ -t 0 ]]; then stty -echo; fi

おすすめ記事