Trong bash cho , trong khi và cho đến khi là ba cấu trúc vòng lặp. Mặc dù mỗi vòng lặp khác nhau về mặt cú pháp và chức năng, mục đích của chúng là lặp lại trên một khối mã khi một biểu thức nhất định được đánh giá.
Cho đến khi vòng lặp được sử dụng để thực thi một khối mã cho đến khi biểu thức được đánh giá là sai. Điều này hoàn toàn ngược lại với vòng lặp while. Vòng lặp While chạy khối mã trong khi biểu thức là true và cho đến khi vòng lặp làm ngược lại.
until [ expression ] do code block ... ... done
Hãy phân tích cú pháp.
- Để bắt đầu vòng lặp, bạn nên sử dụng cho đến khi từ khóa được theo sau bởi một biểu thức trong dấu ngoặc đơn hoặc kép.
- Biểu thức phải được đánh giá là sai cho đến khi bắt đầu chạy khối mã.
- Khối mã thực tế được đặt giữa làm và thực hiện.
Trong bài viết ngắn này, bạn sẽ học cách sử dụng vòng lặp Until trong các tập lệnh shell của mình bằng các ví dụ sau.
Tạo vòng lặp vô hạn trong tập lệnh
Bạn có thể tạo vòng lặp vô hạn bằng cách sử dụng false câu lệnh dưới dạng một biểu thức. Khi bạn cố gắng mô phỏng các vòng lặp vô hạn, hãy thử sử dụng sleep sẽ chuyển tập lệnh theo định kỳ.
count=0 until false do echo "Counter = $count" ((count++)) sleep 2 done
Tạo câu lệnh một dòng
Bạn có thể tạo các câu lệnh lặp một dòng. Hãy xem đoạn mã dưới đây. Điều này giống với ví dụ về vòng lặp vô hạn đầu tiên của chúng tôi nhưng ở một dòng duy nhất. Ở đây bạn phải sử dụng dấu chấm phẩy (;)
để kết thúc mỗi câu lệnh.
# until false; do echo "Counter = $count"; ((count++)); sleep 2; done
Dòng thay đổi với câu lệnh ngắt và tiếp tục
Bạn có thể sử dụng câu lệnh ngắt và tiếp tục bên trong while vòng. break câu lệnh sẽ thoát ra khỏi vòng lặp và sẽ chuyển điều khiển cho câu lệnh tiếp theo trong khi câu lệnh continue sẽ bỏ qua lần lặp hiện tại và bắt đầu lần lặp tiếp theo trong vòng lặp.
Tôi đang sử dụng cùng một ví dụ về vòng lặp vô hạn. Tại đây khi số lượng bằng năm tiếp tục câu lệnh sẽ chuyển sang lần lặp tiếp theo bỏ qua phần còn lại của phần nội dung vòng lặp. Tương tự, vòng lặp ngắt khi số lượng bằng hoặc lớn hơn 10.
count=0 until false do ((count++)) if [[ $count -eq 5 ]] then continue elif [[ $count -ge 10 ]] then break fi echo "Counter = $count" done
Đó là nó cho bài viết này. Chúng tôi sẽ đón bạn với một bài viết thú vị khác ngay sau ‘ cho đến khi ‘Thì hãy tiếp tục đọc và tiếp tục ủng hộ chúng tôi.