Menu
CoddyTech

Vòng lặp while

Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 72 trên 82.

Vòng lặp for rất hữu ích khi bạn biết chính xác những mục cần lặp qua. Nhưng nếu bạn muốn tiếp tục lặp cho đến khi một điều kiện nào đó thay đổi thì sao? Đó là lúc vòng lặp while phát huy tác dụng.

Vòng lặp while tiếp tục chạy miễn là điều kiện vẫn đúng. Đây là cấu trúc cơ bản:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Script này in ra các số từ 1 đến 5.

Vòng lặp (loop) kiểm tra xem count có nhỏ hơn hoặc bằng 5 không. Nếu đúng, vòng lặp chạy phần thân, tăng biến đếm bằng $((...)) để tính toán số học, rồi kiểm tra lại.

Khi count đạt đến 6, điều kiện trở thành sai và vòng lặp dừng lại.

Vòng lặp while rất phù hợp khi bạn chưa biết trước mình cần bao nhiêu lần lặp. Ví dụ, bạn có thể tiếp tục yêu cầu đầu vào cho đến khi người dùng nhập "quit":

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Hãy cẩn thận với vòng lặp while. Nếu điều kiện không bao giờ trở thành sai, vòng lặp sẽ chạy mãi.

Luôn đảm bảo có thứ gì đó bên trong vòng lặp cuối cùng sẽ thay đổi điều kiện, chẳng hạn như tăng bộ đếm hoặc cập nhật biến dựa trên đầu vào của người dùng.

challenge icon

Thử thách

Dễ

Tạo một shell script có tên counter.sh sử dụng vòng lặp while để in các số từ 1 đến 4.

Script của bạn cần:

  1. Bắt đầu bằng dòng shebang (#!/bin/bash)
  2. Tạo một biến có tên num với giá trị ban đầu là 1
  3. Dùng vòng lặp while tiếp tục chạy khi num nhỏ hơn hoặc bằng 4
  4. Bên trong vòng lặp, in số hiện tại theo định dạng: Number: [num]
  5. Tăng num thêm 1 sau mỗi lần lặp bằng cách dùng $((num + 1))

Cho script quyền thực thi rồi chạy nó. Đầu ra của bạn sẽ là:

Number: 1
Number: 2
Number: 3
Number: 4

Gợi ý: Dùng -le để so sánh “nhỏ hơn hoặc bằng”. Nhớ tăng biến đếm bên trong vòng lặp bằng num=$((num + 1)) để tránh vòng lặp vô hạn. Kết thúc vòng lặp while bằng done.

Tự làm thử

Terminal
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Playground Terminal