Sto scrivendo uno script bash in una sessione busybox.
Lo script deve avviare un eseguibile esterno numerose volte in sequenza in forma demonizzata, quindi monitorare l'output.
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
La mia domanda è su quale dei due loop verrà eseguito il comando continue?
La riga iniziale durante la lettura, o la successiva, fino all'attivazione?
Per favore, non concentrarti sul codice effettivo che ho messo insieme come esempio per cercare di spiegare questa domanda, il codice effettivo è molto più dettagliato.
Risposta accettata:
Da “aiuto continua”:
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.
Quindi vuoi continue
o continue 1
per passare all'iterazione successiva di until
o continue 2
per passare all'iterazione successiva di while
.