Vòng lặp For trong Shell Script

Trong bài này mình sẽ hướng dẫn cách sử dụng vòng lặp for trong shell script, đây là vòng lặp cơ bản và dễ hiểu nhất, dùng để lặp một dãy số, một danh sách các thư mục / các file.

1. Cú pháp vòng lặp for trong shell script

Cú pháp nó khá đơn giản, vì là ngôn ngữ dùng để lập trình server nên không quá phức tạp như những ngôn ngữ lập trình khác.

for var in word1 word2 ... wordN
do
   Statement(s) to be executed for every word.
done

Trong đó word1, word2, word3, ... là dãy các giá trị được cách nhau bởi khoảng trắng. Sau mỗi lần lặp thì trình biên dịch sẽ chuyển qua giá trị tiếp theo dựa vào khoảng trắng đó để nhận biết.

* Lưu ý: Dãy các giá trị này có thể là số, chuỗi, hoặc danh sách một file dựa vào đường dẫn của thư mục. Hãy xem phần ví dụ để hiểu rõ hơn.

2. Ví dụ vòng lặp for trong shell script

Mình sẽ đưa ra hai ví dụ đơn giản và thực tế nhất nhé.

Ví dụ 1: In ra dãy số từ 0 đến 9.

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

Khi thực thi đoạn code này bạn sẽ nhận được kết quả như sau:

0
1
2
3
4
5
6
7
8
9

Ví dụ 2: Hiển thị danh sách các file có tên bắt đầu bằng .bash, tại thư mục home của user.

#!/bin/sh

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

Kết quả sẽ có dạng như sau:

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

Trên là cách sử dụng vòng lặp for trong shell script. Bài này khá đơn giản nên mình không đưa ra thêm ví dụ. Hẹn gặp lại bạn ở bài tiếp theo và đó chính là vòng lặp while.

-------------------#####-------------------

Series có tham khảo một số nguồn như tutorialspoint. Vì mình không muốn cài máy ảo nên sử dụng trực tiếp trên VPS luôn, và VPS mình sử dụng Ubuntu.

Bạn đang tìm Hosting / VPS để chạy dự án?

Hiện nay, Tinohost là một trong những nhà cung cấp Hosting tốt nhất Việt Nam. Với đội ngũ hỗ trợ nhanh chóng, giá cả phù hợp, nhiều dịch vụ miễn phí kèm theo như:

  • Hỗ trợ di chuyển dữ liệu
  • Cho dùng thử 7 ngày miễn phí
  • Tự động backup cho khách hàng (cả VPS cũng đc backup)

Sử dụng mã TINO30_2020 để được giảm 30% nhé

VÀO TINOHOST NGAY