Vòng lặp là một trong những khái niệm cơ bản của ngôn ngữ lập trình. Vòng lặp rất hữu ích khi bạn muốn chạy đi chạy lại một loạt lệnh cho đến khi một điều kiện cụ thể được đáp ứng.
Trong các ngôn ngữ kịch bản như Bash, các vòng lặp rất hữu ích để tự động hóa các tác vụ lặp đi lặp lại. Có 3 cấu trúc vòng lặp cơ bản trong Bash scripting, for
, while
và until
.
Hướng dẫn này giải thích những điều cơ bản về vòng lặp until
trong Bash.
Vòng lặp until trong bash
Vòng lặp until
được sử dụng để thực hiện một tập hợp các lệnh miễn là đánh giá lại tình trạng ban cho sai.
Vòng lặp until Bash có dạng sau:
until [CONDITION] do [COMMANDS] done
Điều kiện được đánh giá trước khi thực hiện các lệnh. Nếu điều kiện được đánh giá là false, các lệnh sẽ được thực hiện. Ngược lại, nếu điều kiện được đánh giá là true, vòng lặp sẽ bị kết thúc và điều khiển chương trình sẽ được chuyển cho lệnh sau đó.
Trong ví dụ dưới đây, trên mỗi lần lặp, vòng lặp sẽ in ra giá trị hiện tại của biến counter
và tăng giá trị của biến lên một.
#!/bin/bash counter=0 until [ $counter -gt 5 ] do echo Counter: $counter ((counter++)) done
Vòng lặp lặp lại miễn là biến counter
có giá trị lớn hơn bốn. Tập lệnh sẽ tạo ra kết quả sau:
Counter: 0 Counter: 1 Counter: 2 Counter: 3 Counter: 4 Counter: 5
Sử dụng các câu lệnh break và continue để kiểm soát việc thực thi vòng lặp.
Ví dụ về vòng lặp until Bash
Tập lệnh sau có thể hữu ích khi máy chủ git của bạn có thời gian chết và thay vì nhập thủ công git pull
nhiều lần cho đến khi máy chủ trực tuyến, bạn có thể chạy tập lệnh một lần. Nó sẽ cố gắng pull kho lưu trữ cho đến khi thành công.
#!/bin/bash until git pull &> /dev/null do echo "Waiting for the git host ..." sleep 1 done echo -e "\nThe git repository is pulled."
Tập lệnh sẽ in “Waiting for the git host…” và sleep
trong một giây cho đến khi máy chủ git trực tuyến. Khi kho lưu trữ được kéo, nó sẽ in “The git repository is pulled.”.
Waiting for the git host ... Waiting for the git host ... Waiting for the git host ... The git repository is pulled.
Phần kết luận
Vòng lặp while
và until
tương tự như nhau. Sự khác biệt chính là while
vòng lặp lặp lại miễn là điều kiện đánh giá đến true
và until
vòng lặp lặp lại miễn là điều kiện đánh giá đến false
.
Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.