Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Bài viết này tìm hiểu cách dùng break và continue trong bash scripts. Trong bash, có 3 loop constructs chính: for, while, until. Break và continue là bash builtin dùng để thay đổi flow của loops. Khái niệm này có trong các ngôn ngữ phổ biến như Python.

$ type -a break continue
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Thoát khỏi Loop với Break Statement

Break statement sẽ exit khỏi loop và control passed đến statement tiếp theo sau loop. Chạy help command để xem info về break.

$ help break
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Cú pháp cơ bản của break:

$ break [n]  # n là optional

Ví dụ: for loop đơn giản iterate range 1 đến 20 step 2. Conditional statement evaluate expression và khi true ($val = 9) thì chạy break statement, loop terminated, skip remaining iterations.

#!/usr/bin/bash
for val in {1..20..2}
do
  if [[ $val -eq 9 ]]
  then
    break
  else
    echo "printing ${val}"
  fi
done
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Bỏ qua Iteration với Continue Statement

Nếu không muốn thoát hoàn toàn loop mà chỉ skip code block khi condition met? Dùng continue statement. Continue sẽ skip execution của code block khi condition met và control passed back đến loop statement cho next iteration.

Truy cập help:

$ help continue
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Ví dụ tương tự break example. Khi Val evaluate thành 9 thì continue skip tất cả remaining code blocks và pass control về for loop cho next iteration.

#!/usr/bin/bash
for val in {1..20..2}
do
  if [[ $val -eq 9 ]]
  then
    continue
  fi
  echo "printing ${val}"
done
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Nếu biết python, break và continue behavior giống hệt python. Nhưng python cung cấp thêm loop control statement gọi là pass.

Pass như null statement, interpreter đọc nhưng không perform operation. Chỉ result in no operation. Bash không cung cấp statement tương tự nhưng có thể emulate dùng true keyword hoặc colon(:). Cả true và colon đều shell builtin và không perform operation.

$ type -a : true
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Ví dụ: Khi conditional statement evaluate true ($val = 9) thì true statement không làm gì và loop continue.

#!/usr/bin/bash
for val in {1..20..2}
do
  if [[ $val -eq 9 ]]
  then
    true
  fi
  echo "printing ${val}"
done
Làm chủ Break và Continue trong Bash Loops: Hướng dẫn Thực tế

Đó là tất cả cho bài viết này. Chúng tôi rất mong nghe feedback và tips từ bạn.