私のスクリプトはfetch_remote_work.sh
ネットワークに接続するため、かなり遅くなります。動作するまで何度も実行する必要があります。
./fetch_remote_work.sh
while [ $? -ne 0 ]
do
./fetch_remote_work.sh
done
これは明らかにうまく機能します。しかし、最初の を呼び出す義務があるのは好きではありません./fetch_remote_work.sh
。他の言語では、php、そこには一方を行います少なくとも最初の繰り返しを実行するループ。これが存在すれば非常にきれいになりますバッシュ
そこで質問なのですが、私がやった方法よりももっときれいな方法はあるのでしょうか?
答え1
コマンド自体をwhile
構造の条件として使用します。
while ! ./fetch_remote_work.sh; do :; done
答え2
何かを実行したい場合それまで戻りコードはゼロです。
until [ $RANDOM -eq 42 ]
do
echo looking for the answer to life, the universe, and everything
done
(またはワンライナーとして)
until [ $RANDOM -eq 42 ]; do echo looking for the answer to life, the universe, and everything; done
たとえば:
until ./fetch_remote_work.sh; do :; done
このループは「何もしない」(:
組み込み)それまでfetch_remote_work.sh スクリプトは 0 を返します。
答え3
最初の行を に変更してfalse
、最初の反復で望ましい条件を強制します。