次のシェルスクリプトがあります。
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}
ループとsleepコマンドを使用してこれを達成できました。
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
ただし、スクリプトが(最初または2番目など)反復中に条件と一致する場合は、スクリプトを中断して次の反復を実行したくありません。
whileループを実装する必要があるようですが、そこに条件とforループを追加する方法がわかりません。
答え1
これbreak
組み込みこの目的に使用されます。
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