# wait for host to become online
while true; do
ping host -c 1 -w 3 > /dev/null && break;
sleep 1
done
Ctrl+を押すとCpingが選択され、終了コード1(ホストの終了と同じ)で終了します。これを正しく行うにはどうすればよいですか?
解決策:sleep 1 || break
^ Cをダブルクリックします。
答え1
trap "exit 1" INT
while true; do
ping host -c 1 -w 3 > /dev/null && break;
sleep 1
done
trap - INT # restore handler
答え2
ループをあまりにも奇妙に書かないでください。
until ping host -c 1 -w 3
do sleep 1
done >/dev/null
上記の作業を行うには、次のものが必要です。最大^C
sleep
ループを終了するには、2回の連続キー入力が必要です。ただし、レイヤーを追加すると次のようになります。
sh -c '
until ping host -c 1 -w 3
do sleep 1
done' >/dev/null
…その二人は必要ありません。