Cách sử dụng vòng lặp for trong tập lệnh Linux Bash Shell Script
Vòng lặp là một nghệ thuật cố hữu, có thể làm cho công việc của bạn trở nên đơn giản hơn và giúp bạn tự động hóa các công việc lặp đi lặp lại một cách tương đối dễ dàng.
Hãy tưởng tượng một tình huống trong đó bạn cần cập nhật một loạt số hoặc văn bản và thay vì làm điều đó theo cách thủ công, bạn có hệ thống làm điều đó cho bạn. Đây là sức mạnh của vòng lặp và những lợi ích mà nó mang lại cho bạn.
Vòng lặp, như một hàm, có sẵn trong hầu hết mọi ngôn ngữ lập trình; Bash của Linux cũng không nằm ngoài quy tắc này.
Đây là hướng dẫn giải thích cách bạn có thể sử dụng vòng lặp for trong tập lệnh shell.
Mục Lục
Cấu trúc vòng lặp for
Sử dụng vòng lặp for trong các tập lệnh shell khá đơn giản và bạn có thể thao tác cấu trúc để đạt được các mục tiêu khác nhau.
Cấu trúc cơ bản như sau:
for item in [LIST]
do
[COMMANDS]
done
Với một vòng lặp, bạn có thể chuyển qua các giá trị số và ký tự, tùy thuộc vào nhu cầu của giờ.
Đây là cấu trúc của vòng lặp for trong tập lệnh shell:
for VARIABLE in 1 2 3 4 5 .. N
do
command1
command2
commandN
done
Bạn có thể xác định số lần lặp trong dòng đầu tiên. Bằng cách này, bạn sẽ đề cập đến giá trị bắt đầu và giá trị kết thúc.
Số lần lặp được xác định bởi các giá trị bạn chỉ định, trong khi mã theo sau làm câu lệnh là giá trị vòng lặp kết quả.
Tạo và chạy các vòng lặp trong Linux Bash
Mở thiết bị đầu cuối Linux để bắt đầu viết mã.
Một trình soạn thảo văn bản được sử dụng để lưu trữ tập lệnh shell, tập lệnh này sẽ in ra kết quả mong muốn khi được thực thi. Đối với mục đích minh họa, các lệnh trong hướng dẫn này được viết trong Nano trình soạn thảo văn bản.
Loại nano trong dòng lệnh đầu cuối để mở trình soạn thảo văn bản, theo sau là tên tập lệnh shell.
nano ForLoops.sh
Bạn có thể thay đổi tên của shell script thành bất kỳ tên nào bạn muốn. Phần mở rộng là sh, vì bạn sẽ lưu trữ một tập lệnh shell.
In số nguyên bằng cách sử dụng cho các vòng lặp
Trong phần này, các mã sau sẽ chứng minh cách bạn có thể in các giá trị số nguyên theo cách khác nhau. Để sử dụng vòng lặp for trong tập lệnh shell để in số nguyên, bạn có thể thử một số ví dụ về mã này.
1. Mã vòng lặp để in một bộ số
Khi trình chỉnh sửa mở ra, đã đến lúc viết mã.
#!/usr/bin/bash
for i in 1 2 3
do
echo "Current # $i"
done
Đầu ra:
Ở đâu:
- tôi = tên biến để lưu trữ các giá trị được lặp lại
- 1 2 3 = số lần lặp lại vòng lặp for trong tập lệnh shell
- làm = lệnh để thực hiện một tập hợp các hành động nhất định
- tiếng vang = in kết quả được xác định cùng với
- làm xong = kết thúc vòng lặp
Lưu mã trong trình soạn thảo văn bản bằng cách nhấn Ctrl + X. Lưu và thoát khỏi tập lệnh.
Trước khi thực thi mã, bạn phải thay đổi quyền của shell script.
đi vào chmod + x theo sau là tên tệp tập lệnh shell của bạn:
chmod +x Forloops.sh
Sau khi quyền được cấp, hãy chạy vòng lặp for trong tập lệnh shell của bạn bằng cách nhập nội dung sau:
./Forloops.sh
Kết quả đầu ra sẽ in trong cửa sổ đầu cuối.
2. Cách Thay thế để In Tập hợp Số
Có nhiều cách thay thế để xác định vòng lặp for trong tập lệnh shell. Bạn cũng có thể chỉ định giá trị bắt đầu và kết thúc của các lần lặp của vòng lặp bằng cách sử dụng dấu ngoặc nhọn.
Đây là cấu trúc mã:
for i in {1..3} # a for loop defines a variable and how many iterations you want to make through a loop
do
echo "Current # $i: Example 2"
done
Vòng lặp sẽ chạy ba lần và các giá trị sẽ được in theo cách sau:
3. Mã vòng lặp sử dụng giá trị bước
Bạn có thể xác định các giá trị bước trong vòng lặp của mình nếu bạn muốn di chuyển không tuần tự qua các lần lặp. Tùy thuộc vào giá trị được chỉ định, đầu ra sẽ có một khoảng cách cố định.
Ví dụ:
for i in {1..10..2}
do
echo "Number = $i"
done
Ở đâu:
- tôi = biến để lưu trữ các lần lặp lại
- 1..10 = số lần lặp để chạy vòng lặp
- 2 = giá trị bước
- làm = lệnh in đầu ra
- tiếng vang = lệnh in
- làm xong = thoát lệnh cho vòng lặp
Đầu ra:
Kết quả đầu ra có hai sự khác biệt, được chỉ định trong câu lệnh bước.
In các giá trị ký tự bằng cách sử dụng cho các vòng lặp
Đối với các vòng lặp trong kịch bản shell không chỉ giới hạn ở các số nguyên. Trong Bash, bạn có thể sử dụng vòng lặp for để lặp qua các ký tự và giá trị chuỗi một cách hiệu quả.
1. Vòng qua chuỗi
Dưới đây là một ví dụ cơ bản về cách bạn có thể lặp qua một số giá trị chuỗi (được định nghĩa trong câu lệnh for):
for name in John Jack Mary
do
echo "My name is $name"
done
Ở đâu:
- Tên = biến để lưu trữ các giá trị chuỗi
- làm = lệnh in đầu ra
- tiếng vang = lệnh in
- làm xong = thoát lệnh cho vòng lặp
Đầu ra:
Vòng lặp for này sẽ lặp lại ba lần, vì chỉ có ba giá trị chuỗi được chỉ định trong vì bản tường trình.
2. Vòng qua các chuỗi có điều kiện
Điều gì xảy ra nếu bạn muốn thông qua một số điều kiện logic để kết thúc vòng lặp giữa chừng? Với mục đích này, bạn có thể sử dụng các câu lệnh logic chẳng hạn như NẾU NHƯ bản tường trình. Câu lệnh IF kiểm soát cách thức hoạt động của vòng lặp và kết quả là kết quả nào sẽ in ra.
for element in Hydrogen Helium Lithium Beryllium; doif [[ "$element" == 'Lithium' ]]; then
break
fi
echo "Element: $element"
done
echo 'All Done!'
Ngay sau khi giá trị của phần tử bằng Lithium, vòng lặp kết thúc và kết quả đầu ra được in ra. Vòng lặp chạy cho đến khi điều kiện không còn được đáp ứng.
Vì Lithium đứng thứ ba trong danh sách các giá trị, vòng lặp sẽ chạy trong hai lần lặp trước khi nó in ra kết quả cuối cùng Tất cả đã được làm xong!.
Chạy vòng lặp trong Linux Bash
Vòng lặp là một phần thiết yếu của cấu trúc trình bao Linux, có thể nâng cao chức năng của các tập lệnh Linux.
Nếu bạn phải in các đầu ra lặp đi lặp lại, không có gì tốt hơn là các vòng lặp trong tập lệnh Bash. Như chúng tôi đã đề cập trước đó, vòng lặp có sẵn trong hầu hết mọi ngôn ngữ lập trình và Python cũng không ngoại lệ. Cắt bỏ sự lặp lại và sống theo mã KHÔ (Đừng lặp lại chính bạn).
Đọc tiếp
Giới thiệu về tác giả