いくつかの出力を提供するbashスクリプトがあります。しかし、時には出力に長い時間がかかることがあります。 5秒間出力コマンドだけ待つことはどのように可能ですか? 5秒以内に出力がない場合は、bash-script-2を実行してください。出力がある場合は、bash-script-1を実行します。
ウェブで検索してみましたが、関連情報が見つかりませんでした。
答え1
出力をログファイルに送信し、tail -f
ログファイルをタイムアウトに送信し、何でも一致します。
some-long-running-command > log-file &
if timeout 5 tail -f log-file | grep .
then
# grep found something before tail was killed
bash-script-1
else
# tail was killed before grep found anything
bash-script-2
fi
これtimeout
注文するGNU coreutilsから。