J'écris un script bash dans une session busybox.
Le script doit lancer un exécutable externe plusieurs fois de suite sous une forme démonisée, puis surveiller la sortie.
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
Ma question est sur laquelle des deux boucles la commande continue sera-t-elle exécutée ?
La première ligne de lecture while, ou la suivante, jusqu'à ce qu'elle soit déclenchée ?
S'il vous plaît, ne vous concentrez pas sur le code réel que j'ai rassemblé comme exemple pour essayer d'expliquer cette question, le code réel est beaucoup plus détaillé.
Réponse acceptée :
Depuis "aide continue":
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.
Vous voulez donc continue
ou continue 1
pour passer à l'itération suivante de until
, ou continue 2
pour passer à l'itération suivante de while
.