Linux
如何多次檢查while循環內的條件然後執行命令
switchback(){ while true do players=$(cat $serverpath/$port//count.txt); sleep 5; if (( $players < 10 ));then $(loadpubserveripip) break fi done }
在上面的函式中,我怎麼能像if 條件應該連續 5 次為真,然後只有它做進一步的操作。
只需添加一個等於 5 的計數器變數。如果條件為真則減 1,如果為假則重置為 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
應該是一個有效的 shell 命令才能工作。