Saya sedang menulis skrip bash di sesi busybox.
Script harus menginisiasi executable eksternal beberapa kali secara berurutan dalam bentuk daemonisasi kemudian memonitor 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
Pertanyaan saya adalah dari dua loop mana perintah continue akan dieksekusi?
Baris awal while read, atau baris berikutnya, hingga dipicu?
Tolong jangan fokus pada kode aktual yang telah saya rangkum sebagai contoh untuk mencoba menjelaskan pertanyaan ini, kode sebenarnya jauh lebih detail.
Jawaban yang Diterima:
Dari "bantuan lanjutkan":
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.
Jadi Anda ingin continue
atau continue 1
untuk pergi ke iterasi berikutnya dari until
, atau continue 2
untuk pergi ke iterasi berikutnya dari while
.
Cara Mengaktifkan Tab Tertentu Chrome Melalui Bash?
Gunakan Sed Untuk Menambahkan Karakter Di Posisi Ke-N Dari String Yang Cocok?