ビジボックスセッションで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
私の質問は、2つのループのうちどのループに対して引き続きコマンドが実行されるのかということです。
読み出しラインの初期または後続、トリガまで?
この問題を説明するために、例で書いた実際のコードに集中しないでください。実際のコードははるかに詳細です。
答え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
。