비지박스 세션에서 bash 스크립트를 작성 중입니다.
스크립트는 외부 실행 파일을 데몬으로 순서대로 여러 번 시작한 다음 출력을 모니터링해야 합니다.
while read LINE; do
VARIABLEPARAMETER=`echo "$LINE" | sed -e 's/appropriateregex(s)//'`
externalprog --daemonize -acton $VARIABLEPARAMETER -o /tmp/outputfile.txt
until [ "TRIGGERED" = "1" ]; do
WATCHOUTPUT=`tail -n30 /tmp/outputfile.txt`
TRIGGERED=`echo "$WATCHOUTPUT" | grep "keyword(s)"`
if [ -z "$TRIGGERED" ]; then
PROGID=`pgrep externalprog`
kill -2 "$PROGID"
continue
fi
done
done < /tmp/sourcedata.txt
내 질문은 두 루프 중 어느 루프에 대해 계속 명령이 실행될 것인가입니다.
읽기 라인의 초기 또는 후속, 트리거까지?
이 문제를 설명하기 위해 예제로 작성한 실제 코드에 집중하지 마십시오. 실제 코드는 훨씬 더 자세합니다.
답변1
도움말에서 계속:
continue: continue [n]
Resume for, while, or until loops.
Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
If N is specified, resumes the Nth enclosing loop.
Exit Status:
The exit status is 0 unless N is not greater than or equal to 1.
그래서 당신이 원 continue
하거나 들어가고 싶은 continue 1
다음 반복 until
, 또는 continue 2
들어가는 다음 반복 while
.