GNU/Linux >> Belajar Linux >  >> Linux

Dalam Skrip Bash Bagaimana Perintah Lanjutkan Bekerja Dengan Loop Tertanam?

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 .


Linux
  1. Cara memutar ulang sesi terminal yang direkam dengan perintah skrip Linux

  2. Tujuan .bashrc Dan Bagaimana Cara Kerjanya?

  3. Bagaimana Perintah Keluar Bekerja Pada Terminal Unix?

  1. Bagaimana Menambahkan Ppa Dengan Perintah Curl Bekerja?

  2. Periksa Berapa Lama Skrip Bash Dijalankan Dengan Perintah Waktu

  3. Cara membuat perintah alias berfungsi di skrip bash atau file bashrc

  1. Bagaimana Cara Kerja Sticky Bit?

  2. Bagaimana cara kerja perintah 'ls' di Linux/Unix?

  3. Bagaimana cara kerja pola <( cmd ) di bash?