Bash là một trong những ngôn ngữ lập trình và môi trường dòng lệnh phổ biến nhất trong hệ điều hành Linux. Một trong những tính năng mạnh mẽ của Bash chính là khả năng xử lý các vòng lặp, cho phép lập trình viên thực hiện các tác vụ lặp đi lặp lại một cách dễ dàng. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về các loại vòng lặp trong Bash, bao gồm for
, while
, until
và select
. Bài viết sẽ phân tích cú pháp, cách sử dụng và một số ví dụ thực tế giúp bạn áp dụng vào công việc lập trình của mình.
Vòng lặp for
Vòng lặp for
trong Bash cho phép bạn lập qua một dãy số hoặc một danh sách các giá trị. Đây là một trong những cách đơn giản và hiệu quả nhất để lặp qua các phần tử trong một mảng hoặc một danh sách.
Cú pháp cơ bản
Cú pháp của vòng lặp for
thường có dạng như sau:
for variable in list
do
# Commands to be executed
done
Ví dụ
Dưới đây là một ví dụ minh họa cho việc sử dụng vòng lặp for
trong Bash. Giả sử bạn muốn in ra các số từ 1 đến 5:
for i in 1 2 3 4 5
do
echo "Number: $i"
done
Khi chạy đoạn mã này, kết quả sẽ như sau:
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
Vòng lặp for với dãy số
Ngoài việc sử dụng các giá trị tĩnh, bạn cũng có thể sử dụng vòng lặp for
với dãy số bằng cách sử dụng cú pháp seq
hoặc {}
. Ví dụ:
for i in $(seq 1 5)
do
echo "Number: $i"
done
Hoặc:
for i in {1..5}
do
echo "Number: $i"
done
Vòng lặp while
Vòng lặp while
cho phép thực hiện các lệnh cho đến khi điều kiện xác định là không còn đúng. Điều này rất hữu ích khi bạn không biết trước số lần lặp.
Cú pháp cơ bản
Cú pháp của vòng lặp while
như sau:
while [ condition ]
do
# Commands to be executed
done
Ví dụ
Dưới đây là một ví dụ minh họa cho vòng lặp while
. Trong ví dụ này, chúng ta sẽ in ra các số từ 1 đến 5:
i=1
while [ $i -le 5 ]
do
echo "Number: $i"
((i++))
done
Kết quả của đoạn mã trên sẽ giống như sau:
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
Vòng lặp until
Tương tự như vòng lặp while
, nhưng vòng lặp until
thực hiện các lệnh cho đến khi điều kiện xác định là đúng. Điều này thường ít được sử dụng hơn, nhưng vẫn rất hữu ích trong một số trường hợp nhất định.
Cú pháp cơ bản
Cú pháp của vòng lặp until
như sau:
until [ condition ]
do
# Commands to be executed
done
Ví dụ
Dưới đây là ví dụ sử dụng vòng lặp until
. Chúng ta sẽ in ra các số từ 1 đến 5 giống như trước nhưng lần này sẽ sử dụng until
:
i=1
until [ $i -gt 5 ]
do
echo "Number: $i"
((i++))
done
Kết quả sẽ giống như sau:
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
Vòng lặp select
Vòng lặp select
là một cách hữu ích để tạo ra các menu lựa chọn từ đó người dùng có thể chọn một giá trị. Vòng lặp select
là một cách tuyệt vời để tương tác với người dùng trong các script shell.
Cú pháp cơ bản
Cú pháp của vòng lặp select
như sau:
select variable in list
do
# Commands to be executed
done
Ví dụ
Dưới đây là một ví dụ minh họa cho vòng lặp select
. Chúng ta sẽ tạo một menu đơn giản cho người dùng chọn một loại trái cây:
PS3="Please select a fruit: "
select fruit in Apple Banana Cherry Quit
do
case $fruit in
Apple)
echo "You selected Apple."
;;
Banana)
echo "You selected Banana."
;;
Cherry)
echo "You selected Cherry."
;;
Quit)
echo "Exiting."
break
;;
*)
echo "Invalid selection."
;;
esac
done
Khi bạn chạy đoạn mã này, bạn sẽ thấy một menu cho phép bạn chọn. Nếu bạn chọn một trong các trái cây, nó sẽ in ra lựa chọn tương ứng. Chọn "Quit" sẽ thoát khỏi vòng lặp.
Kết luận
Các vòng lặp trong Bash không chỉ đơn giản mà còn rất mạnh mẽ, giúp bạn tự động hóa các tác vụ lặp đi lặp lại trong script của mình. Từ việc xử lý danh sách các giá trị đến việc tạo tương tác với người dùng qua select
, các vòng lặp này cung cấp cho bạn khả năng linh hoạt trong việc xây dựng các script phức tạp hơn. Hy vọng rằng bài viết này đã cung cấp cho bạn cái nhìn sâu sắc về các kiểu vòng lặp trong Bash và cách áp dụng chúng.
Comments