私は次のようなものを実行しようとしています:
sudo dhclient $wifi || otherFunction
問題は、dhclient
失敗するとエラーが発生するのではなく中断されることです。
60秒以内に完了しない場合は、終了して呼び出すためにdhclient
上記のコードをどのように書き換えることができますか?otherFunction
dhclient
答え1
あなたの停止するラベルはすべてを提供します。
sudo timeout 60 dhclient $wifi || otherFunction
一例:
sudo timeout 3 sleep 5 || echo finished early
これは以下を使用します。タイムアウトユーティリティLinuxのGNU coreutilsパッケージで提供されています。
答え2
使用timeout
。
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124
答え3
timeout
ポートと同じラッパーを使用してください。gtimeout
coreutils
brew
:
brew install coreutils
gtimeout --help
/usr/local/bin
になりますPATH
。元の名前として使用するには、にtimeout
追加してください。/usr/local/opt/coreutils/libexec/gnubin
PATH