switchback(){
while true
do
players=$(cat $serverpath/$port//count.txt);
sleep 5;
if (( $players < 10 )); then
$(loadpubserveripip)
break
fi
done
}
上記の関数で次のステップに進む前に条件を5回続けるif
必要があるようにするにはどうすればよいですか?true
答え1
5のようなカウンタ変数を追加するだけです。条件がtrueの場合は1ずつ減少し、falseの場合は5にリセットし、count = 0の場合は中止します。コードに基づく最も簡単な答えは次のとおりです。
switchback(){
count=5
while true
do
players=$(cat $serverpath/$port//count.txt);
if (( $players < 10 ));then
if ! ((--count)); then
$(loadpubserveripip)
break
fi
else
count=5
fi
sleep 5
done
}
参考にするいくつかの点:
sleep 5
最後のループで不要な睡眠を避けるために、ループの一番下に移動しました。- 「追加操作」は、ループの前から
break
ループの後ろに移動できます。なぜなら、ループは5番目の時間が$players
10未満の場合にのみ中断されるからです。 $(loadpubserveripip)
その行で何をしているのか知ってほしい。結果は、loadpubserveripip
機能できる有効なシェルコマンドでなければなりません。