Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Thành Thạo Vòng Lặp For và While Trong Bash: Ví Dụ & Cú Pháp

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