成功するまで非常に遅いスクリプトを実行します。

成功するまで非常に遅いスクリプトを実行します。

私のスクリプトがfetch_remote_work.shネットワークに接続されているので、非常に遅いです。正常に動作するまで数回実行する必要があります。

./fetch_remote_work.sh

while [ $? -ne 0 ]
do
    ./fetch_remote_work.sh
done

これは明らかに非常にうまく機能します。しかし、最初に電話する義務は気に入らない./fetch_remote_work.sh。私はそれを別の言語で知っています。、一つあります。しばらくやってください少なくともループの最初の反復を実行します。いたら本当にきれいだったでしょう。

だから私の質問は:私がやっているよりもきちんとした方法がありますか?

答え1

コマンド自体をwhile構成条件として使用します。

while ! ./fetch_remote_work.sh; do :; done

答え2

何かを実行したい場合~まで戻りコードは0です。

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最初の繰り返しが目的の条件を満たすようにします。

関連情報