Trong Bash Script, lệnh continue hoạt động như thế nào với các vòng lặp nhúng?


7

Tôi đang viết một tập lệnh bash trong một phiên làm việc bận rộn.

Kịch bản phải khởi tạo một thực thi bên ngoài nhiều lần theo trình tự ở dạng daemonised sau đó theo dõi đầu ra.

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

Câu hỏi của tôi là lệnh nào trong hai vòng lặp sẽ tiếp tục thực thi lệnh?

Dòng đầu tiên trong khi đọc, hoặc tiếp theo, cho đến khi được kích hoạt?

Xin đừng tập trung vào mã thực tế mà tôi đã đưa nó làm ví dụ để cố gắng giải thích câu hỏi này, mã thực tế chi tiết hơn nhiều.

Câu trả lời:


15

Từ "trợ giúp tiếp tục":

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.

Vì vậy, bạn muốn continuehoặc continue 1đi đến lần lặp lại tiếp theo untilhoặc continue 2đi đến lần lặp tiếp theo của while.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.