次のシェルスクリプトがあります。
OUTPUT=$(systemctl is-active etcd)
if [[ $OUTPUT == active ]]; then
echo "The result is successfull"
else
echo "The result is unsuccessfull"
fi
このスクリプトを10秒間実行します。毎回10秒間スリープします。私はfor i in {1..10}
ループを使用してこれを達成し、次にスリープコマンドを使用することができました。
for i in {1..10}; do
sleep 10
OUTPUT=$(systemctl is-active etcd)
if [[ $OUTPUT == active ]]; then
echo "The result is successfull"
else
echo "The result is unsuccessfull"
fi
done
しかし、スクリプトが(たとえば、1回目または2回目など)反復中の条件に一致し、次の反復を実行したくない場合は、スクリプトを中断します。
Whileループを実装する必要があると思いますが、そこに条件とforループを追加する方法がわかりません。
break
builtin がこれに使用されます。
for i in {1..10}; do
sleep 10
OUTPUT=$(systemctl is-active etcd)
if [[ $OUTPUT == active ]]; then
echo "The result is successful"
break
else
echo "The result is unsuccessful"
fi
done