回答:
some_command
テスト条件として使用できます。
while ! some_command; do sleep 1; done
some_command
エラーで終了する限り、条件は真のままです。
または、追加のチェックを行う場合のより詳細な方法:
while ! some_command
do
# add more if desired
sleep 1
done
while ! some_command; do several; commands; sleep 1; done
これがuntil
ループの目的です。
until some_command
do sleep 1
done
while
ループの論理否定です。
until
ループuntil
ループは、連続的に1実行しなければならない化合物リストを長く別限り化合物リストは、ゼロ以外の終了ステータスを有しています。
untilループの形式は次のとおりです。
compound-list-1まで compound-list-2を実行します やった
until
コマンドが完了します。そうでない場合は、compound-list-2が実行され、プロセスが繰り返されます。あなたはただすることができます:
false
while [ $? -ne 0 ] ; do
sleep 1
some_command
done
ただし、これには常に1秒先にスリープするという欠点があります
0で終了するいくつかのコマンドのいずれかで終了できるようにする場合は、次のようにします。
while true; do
if [ some_command ] ; then break ; fi
if [ some_other_command ] ; then break ; fi
sleep 1
done
もちろんこれはちょうど some_command
[
と]
コマンドの周り。