次のことができる:
#! /bin/bash
timeout 2 time sleep 1
if [[ $? == 124 ]]
then
exit;
fi
timeout 2 time sleep 3
if [[ $? == 124 ]]
then
exit;
fi
timeout 2 time sleep 5
if [[ $? == 124 ]]
then
exit;
fi
0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 1696maxresident)k
0inputs+0outputs (0major+73minor)pagefaults 0swaps
ないきれいな出力をしますが、最初の行の後に停止します:
は私のシステムでは、それが生産するタイミングsleep 3
の結果とsleep 5
が示されることはありません。
timeout
はGNU coreutilsコマンドであり、どこにもインストールされていないことに注意してください(システムにインストールできる場合)。終了ステータスも異なる場合があります:124がデフォルトですが、おそらく$? != 0
をテストする方が良いでしょう。
私はここで編集しましたが、今後は個々の質問に固有の質問のタイトルを作成してください。他の人は - タイトルを見て - 既存の質問とその答えが問題の解決に役立つでしょう。 –
[コマンドラインコマンドを複製して一定時間後にコマンドを自動終了する](http://stackoverflow.com/questions/601543/command-line-command-to-auto-kill-a-command-特定の時間後) – Evert
@Evert、ここでは、個々のコマンドだけでなく、スクリプト全体を中止することが意図されているため、ここでは少し異なります。認可された、非常に異なる*ではありません。 –