Giống như các ngôn ngữ scripting khác, Bash cũng hỗ trợ vòng lặp.
Vòng lặp rất thích hợp cho các tác vụ lặp lại. Ta có thể dùng vòng lặp for và while trong script Bash.
Vòng Lặp For Bash
Cú pháp vòng lặp for:
for VARIABLE in PARAM1 PARAM2 PARAM3
do
# thân vòng lặp
done
Vòng lặp sẽ chạy lần lượt cho từng tham số. Tham số có thể là số, dải số, chuỗi, v.v.
Ví Dụ Vòng Lặp For Bash
In số từ 1 đến 5:
#!/bin/bash
for i in 1 2 3 4 5
do
echo "$i"
done
Kết quả:
1
2
3
4
5
Vòng Lặp For - In Dải Số
Có thể định nghĩa dải số để lặp:
for i in {1..5}
do
echo "$i"
done
Kết quả giống như trên.
Vòng Lặp For - Duyệt Chuỗi
Dùng for để lặp qua các chuỗi:
#!/bin/bash
for day in MON TUE WED THU FRI SAT SUN
do
echo "$day"
done
Kết quả:
MON
TUE
WED
THU
FRI
SAT
SUN
Vòng Lặp For - Kiểu C
Cũng có thể dùng cú pháp kiểu C cho vòng lặp for:
#!/bin/bash
for ((i=1; i<=5; i++))
do
echo "$i"
done
Kết quả:
1
2
3
4
5
Vòng Lặp For - Liệt Kê File Trong Thư Mục Hiện Tại
Để liệt kê tất cả file trong thư mục hiện tại dùng for:
#!/bin/bash
for fname in ./*
do
ls -l $fname
done
Vòng Lặp While Bash
Bash cũng hỗ trợ vòng lặp while. Vòng lặp while thực thi một tập lệnh cho đến khi điều kiện đánh giá thành true (đúng).
Cú pháp vòng lặp while Bash:
while [condition]
do
# thực thi lệnh
done
Điều kiện được đánh giá trước khi thực thi bất kỳ lệnh nào. Do đó, cần có cách cập nhật điều kiện, nếu không vòng lặp sẽ chạy vô tận.
Ví Dụ Vòng Lặp While Bash
Vòng lặp while đơn giản in số 1 đến 5. Kết thúc khi số lớn hơn 5.
#!/bin/bash
num=1
while [ $num -le 5 ]
do
echo "$num"
let num++
done
Vòng Lặp While Kiểu C
Giống for, while cũng có thể viết kiểu C:
#!/bin/bash
num=1
while((num <= 5))
do
echo $num
let num++
done