Tìm hiểu chi tiết về vòng lặp for và while trong Shell

Bạn chưa biết gì về vòng lặp for và while? Bạn muốn tìm hiểu thêm về vòng lặp for, while trong Shell? Hãy dành ít phút để tham khảo bài viết bên dưới đây của chúng tôi nhé.

Vòng lặp for trong Shell

Vòng lặp for hoạt động trên các danh sách của các mục (item). Nó lặp đi lặp lại một tập hợp các lệnh cho mỗi mục trong một danh sách.

Cú pháp trong Unix/Linux

for var in word1 word2 ... wordN
do
   cac lenh de thuc thi cho moi word.
done

Ở đây, var là tên của một biến và word1 tới wordN là dãy các ký tự phân biệt nhau bởi các khoảng trống. Cứ mỗi lần vòng lặp thực thi, giá trị của biến var được thiết lập tới word tiếp theo trong danh sách các word, từ word1 tới wordN.

Ví dụ trong Unix/Linux

Dưới đây là ví dụ đơn giản mà sử dụng vòng lặp for để duyệt qua danh sách các số.

#!/bin/sh

for var in 0 1 2 3 4 5 6 7 8 9
do
   echo $var
done

Nó sẽ cho kết quả sau:

0
1
2
3
4
5
6
7
8
9

Sau đây là ví dụ để hiển thị tất cả các file bắt đầu với .bash và có sẵn trong thư mục home của bạn. Tôi thực hiện script này từ root của tôi.

#!/bin/sh

for FILE in $HOME/.bash*
do
   echo $FILE
done

Nó sẽ cho kết quả sau:

/root/.bash_history
/root/.bash_logout
/root/.bash_profile
/root/.bashrc

Vòng lặp while trong Shell

Vòng lặp while cho bạn khả năng thực thi một tập hợp các lệnh lặp đi lặp lại cho tới khi một số điều kiện xảy ra. Nó thường được sử dụng khi bạn cần thao tác giá trị biến lặp đi lặp lại.

Cú pháp trong Unix/Linux

while command
do
cac lenh de thuc thi neu command la true
done

Ở đây, command được ước lượng. Nếu giá trị kết quả là true, các lệnh được thực thi. Nếu command là false, thì sau đó, các statement(s) sẽ không được thực hiện và chương trình sẽ nhảy tới dòng lệnh sau lệnh done.

Ví dụ trong Unix/Linux

Dưới đây là một ví dụ đơn giản mà sử dụng vòng lặp while để hiển thị các số từ 0 đến 9.

#!/bin/sh

a=0

while [ $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done

Nó sẽ cho kết quả sau:

0
1
2
3
4
5
6
7
8
9

Cứ mỗi lần vòng lặp này thực thi, biến a được kiểm tra để biết có hay không nó có giá trị là nhỏ hơn 10. Nếu giá trị của a là nhỏ hơn 10, điều kiện này có một trạng thái thoát là 0. Trong trường hợp này, giá trị hiện tại của biến a được hiển thị và sau đó, a được lượng gia thêm 1.

Trên đây là toàn bộ kiến thức về vòng lặp for, while trong Shell. Hi vọng chúng sẽ giúp ích cho bạn trong quá trình thao tác với Unix và Linux.