Estoy escribiendo un script de bash en una sesión de busybox.
El script tiene que iniciar un ejecutable externo varias veces seguidas en forma demoníaca y luego monitorear la salida.
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
Mi pregunta es ¿contra cuál de los dos bucles se ejecutará el comando continuar?
¿La primera línea mientras se lee, o la siguiente, hasta que se activa?
Por favor, no se concentre en el código real. He incluido esto como ejemplo para tratar de explicar esta pregunta, el código real es mucho más detallado.
Respuesta aceptada:
De "ayudar a continuar":
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.
Entonces quieres continue
o continue 1
para ir a la siguiente iteración de until
, o continue 2
para ir a la siguiente iteración de while
.