VPS

Hướng dẫn sử dụng Bash For Loop và ví dụ

For loop là một lệnh chính của mọi ngôn ngữ lập trình. Tại đây, chúng tôi sẽ giải thích cách dùng bash – “bash for loop”. Sẵn sàng để tăng cường kiến thức lập trình của bạn chưa?

For loop là một statement tương tác, nghĩa là bạn có thể thực thi code lặp đi lặp lại. Ví dụ bạn muốn chạy yêu cầu 5 lần. Thay vì phải viết code độc lập, bạn chỉ cần viết 1 lần vòng lặp. Hãy cùng tìm hiểu sâu thêm.

Cấu trúc Bash For Loop

Cơ bảm, for loop syntext là việc sử dụng một bộ các biến. Cấu trúc như sau:

for VARIABLE in 1 2 3 4 5 .. N
Perform the below command:
    command1
    command2
    commandN
done

Trên thực tế, cấu trúc sẽ như sau:

#!/bin/bash
for i in 1 2 3 4 5
do
 echo "Hello $i"
done

Thực thi file bash sẽ cho kết quả:

Hello 1
Hello 2
Hello 3
Hello 4 
Hello 5

Hãy xem từng yếu tố:

  • #!/bin/bash – thể hiện đoạn script là bash script
  • i – là chỗ chứa biến. $i là chỗ chứa giá trị của bạn. Bạn cũng có thể viết c/$c theo ký tự nào cũng được
  • in – cách biến khỏi các yếu tố khác
  • 1 2 3 4 5 –  là ví dụ số sản phẩm bạn muốn thực thi lệnh trên
  • do – là từ khóa để bắt đầu vòng lặp. Nó sẽ được thư thi n lần, với n là số lượng itemes. Tại đây, giá trị này là 5
  • echo “Hello: $i” – là code được lặp lại n lần. Hãy nhớ là dấu ngoặc kép sẽ biến mọi thứ trong nó thành 1 biến.
  • done – dừng vòng lắp

Bạn có thể viết code khác dựa trên phiên bản bash đang chạy:

Bash version 3.0+ có thể viết ngắn thành “. .”.

#!/bin/bash
for i in {1. .5}
do
  echo "Hai $i"
done

Bash version 4.0+ cho phép bạn dùng {START. .END. .INCREMENT} .

#!/bin/bash
for i in {0. .8. .2}
do
  echo "Hai $i"
done

Kết quả sẽ như sau:

Hai 0
Hai 2
Hai 4
Hai 6 
Hai 8

Một số syntax phổ biến khác là:

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done

Hoặc:

for OUTPUT in $(Linux-Or-Unix-Command-Here)
do
    command1 on $OUTPUT
    command2 on $OUTPUT
    commandN
done

Các ví dụ Bash For Loop

Bạn có thể cập nhật syntax để thực thi nhiều tác vụ. Hãy nhớ bạn cần đang nhập vào VPS trước. Nếu gặp vấn đề đăng nhập, bạn tham khảo thêm bài hướng dẫn này nhé. Còn nếu gặp vấn đề với các bash function cơ bản thì xem tài liệu này. Bash function cần đặt trong file .sh. Dùng lệnh sau để tạo một file bash:

vim NameOfFile.sh

Nó sẽ tạo file .sh và mở nội dung lên bằng VIM editor. Bạn có thể học bash function cơ bản trước khi chính thức viết script bash.

Sử dụng Bash For Loop để tạo vòng lặp bất tận

Khi kích hoạt, loop này sẽ thực thi đến khi nào bạn dừng bằng lệnh Control + C. Trong trường hợp này, thuật ngữ “Hello World” sẽ liên tục được lặp lại.

#!/bin/bash
for (( ; ; ))
do
  echo "Hello World!"
done

Sử dụng Bash For Loop để tạo Three-Expression Loop

Vòng lặp bao gồm 3 bước – khởi chạy (EXP1), điều kiện (EXP2), và counting expression (EXP3). Một số người gọi nó là C-style loop vì giống cấu trúc. Nó như sau:

for (( EXP1; EXP2; EXP3 ))
do
    command1
    command2
    command3
done

Đây là ví dụ bạn có thể tự thử:

#!/bin/bash
for (( c=1; c<=5; c++ ))
do  
  echo "Hai $c"
done

Code này nói giá trị ban đầu là 1. Loop sẽ được thực thi cho đến khi điều kiện EXP2 đúng, có nghĩa là nó sẽ không thực thi quá 5. Dấu ++ có nghĩa là tăng dần + 1.  Nó sẽ thực thi từ giá trị ban đầu. Kết quả là:

Hai 1
Hai 2
Hai 3
Hai 4 
Hai 5

Sử dụng Bash for Loop để bỏ qua hay continue loop

Lệnh continue sẽ bỏ qua giá trị được chỉ định và tiếp tục vòng lặp. Cấu trúc như sau:

for I in 1 2 3 4 5
do
 if [condition]
 then
    continue   #Go to next iteration of I in the loop and skip statements3
 fi
 statement
done

Bằng cách làm theo cấu trúc trên, chúng ta có thể tạo bash skip và continue lop như sau:

for i in {1..5}
do
  if [[ "$i" == '4' ]]
  then
    continue
  fi
  echo "Hai $i4"
done

Kết quả là:

Hai 1
Hai 2
Hai 3
Hai 5

Vì giá trị 4 khớp với continue stament, nên loop không thực thi code trên đó mà nhảy sang giá trịp tiếp theo là 5.

Sử dụng Bash for Loop để tạo một Conditional Exit với Break Loop

Loop cho phép bạn dừng hành động khi gặp điều kiện phù hợp. Nó có thể đến từ một chỉ dẫn khác. Cấu trúc như sau:

for I in 1 2 3 4 5
  do
  if [condition]
  then
    break
  fi
  statement
done

Khi sử dụng function này, code của chúng ta sẽ như sau:

for city in Manila Bangkok Jakarta Kuala Lumpur
do
  if [[ "$city" == 'Jakarta' ]]; then
    break
  fi
  echo "city: $city"
done

echo 'Yes, that’s all!'

Kết quả là:

city: Manila
city: Bangkok
Yes, that’s all!

Lệnh script nói cho loop ngừng hành động khi điều khiện thỏa (tìm cụm Jakarta). Rồi sau đó nó thực thi code thứ 2, với kết quả là Yes, that’s all.

Lời kết

Bash for loop là một tác vụ làm vòng lặp tuyệt vời để tự động hóa. Ngoài các ví dụ đơn giản của bash for loop trên, bạn còn có thể làm nhiều việc hơn. Ví dụ, bạn có htể kiểm tra files và thực thi nhiều tác vụ khác!

Tất cả những gì bạn cần làm là viết đúng syntax. Nó có thể hơi khó học, đọc bài này là khởi đầu tốt rồi. Bạn sẽ cần thực hành nhiều hơn cho đến khi nắm vững cách dùng bash for loop! Chúc may mắn

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.

Thêm bình luận

Click vào đây để bình luận

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

Tiết kiệm ngay thôi!

Mua hosting & tên miền miễn phí, tất cả trong một với giá chỉ từ

VNĐ14.875
00
/th