stderrがbashのパイプであるかどうかを確認する
質問
ユーザーに「read」の入力を求める bash スクリプトがあります。stdout または stderr が端末以外の何かにパイプされる場合、このステップを抑制したいと思います。それは可能ですか?
解決
コマンド test -t <ファイル記述子番号> を使用して、ファイル記述子が tty (端末に接続されている) であるかどうかを確認できます。存在する場合は、ユーザーにプロンプトを表示できます。そうでない場合は、出力がどこかにパイプされるかリダイレクトされる可能性があります。
if test -t 1 ; then
echo stdout is a tty
fi
所属していません StackOverflow