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
작동할 수 있는 유효한 쉘 명령이어야 합니다.