15 Bash For Loop Examples for Linux / Unix / OS X Shell Scripting
Mục lục:
- Bash trong khi Loop
- Vô hạn trong khi Loop
- Đọc một dòng tệp theo dòng
- Tuyên bố phá vỡ và tiếp tục
- Tuyên bố phá vỡ
- Tiếp tục tuyên bố
- Phần kết luận
Vòng lặp là một trong những khái niệm cơ bản của ngôn ngữ lập trình. Vòng lặp rất tiện lợi khi bạn muốn chạy một chuỗi số lần lệnh cho đến khi một điều kiện cụ thể được đáp ứng.
Trong các ngôn ngữ kịch bản như Bash, các vòng lặp rất hữu ích để tự động hóa các tác vụ lặp đi lặp lại. Có 3 cấu trúc vòng lặp cơ bản trong kịch bản Bash, cho vòng lặp, vòng lặp while và cho đến vòng lặp.
Hướng dẫn này giải thích những điều cơ bản về vòng lặp while trong Bash cũng như ngắt và tiếp tục phát biểu để thay đổi dòng chảy của vòng lặp.
Bash trong khi Loop
Vòng lặp while được sử dụng để thực hiện một tập hợp các lệnh đã cho với số lần không xác định miễn là điều kiện đã cho đánh giá là đúng.
Vòng lặp Bash có dạng sau:
while do done
Điều kiện được đánh giá trước khi thực hiện các lệnh. Nếu điều kiện đánh giá là đúng, các lệnh được thực thi. Mặt khác, nếu điều kiện ước lượng thành sai, vòng lặp sẽ bị chấm dứt và điều khiển chương trình sẽ được chuyển đến lệnh theo sau.
Trong ví dụ dưới đây, trên mỗi lần lặp, vòng lặp sẽ in giá trị hiện tại của biến
i
và tăng biến số lên một.
i=0 while do echo Number: $i ((i++)) done
Vòng lặp Tue lặp lại miễn là
i
nhỏ hơn hoặc bằng hai. Nó sẽ tạo ra đầu ra sau:
Vô hạn trong khi Loop
Một vòng lặp vô hạn là một vòng lặp lặp đi lặp lại vô thời hạn và không bao giờ chấm dứt. Nếu điều kiện luôn luôn được đánh giá là đúng, bạn sẽ có một vòng lặp vô hạn.
Trong ví dụ sau, chúng tôi đang sử dụng lệnh tích hợp
:
luôn trả về true để tạo một vòng lặp vô hạn. Bạn cũng có thể sử dụng lệnh tích hợp thực hoặc bất kỳ câu lệnh nào luôn trả về true.
Vòng lặp while ở trên sẽ chạy vô thời hạn. Bạn có thể chấm dứt vòng lặp bằng cách nhấn
Đây là một dòng tương đương: Một trong những cách sử dụng phổ biến nhất của vòng lặp while là đọc tệp, luồng dữ liệu hoặc biến dòng theo dòng. Trong ví dụ sau, vòng lặp while sẽ đọc dòng tệp
Thay vì kiểm soát vòng lặp while với một điều kiện, chúng tôi đang sử dụng chuyển hướng đầu vào (
Khi đọc từng dòng tệp, luôn luôn sử dụng
Theo mặc định, lệnh
Các câu lệnh break và continue có thể được sử dụng để kiểm soát việc thực hiện vòng lặp while. Câu lệnh break chấm dứt vòng lặp hiện tại và chuyển điều khiển chương trình cho lệnh theo vòng lặp kết thúc. Nó thường được sử dụng để chấm dứt vòng lặp khi một điều kiện nhất định được đáp ứng. Trong ví dụ sau, việc thực hiện vòng lặp sẽ bị gián đoạn khi mục lặp hiện tại bằng
Câu lệnh continue thoát khỏi lần lặp hiện tại của một vòng lặp và chuyển điều khiển chương trình sang lần lặp tiếp theo của vòng lặp. Trong phần dưới đây, một khi mục lặp hiện tại bằng
Bây giờ bạn nên hiểu rõ về cách sử dụng vòng lặp bash while.
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
Đọc một dòng tệp theo dòng
/etc/passwd
theo từng dòng và in từng dòng.
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
) để truyền một tệp tới lệnh
read
là lệnh điều khiển vòng lặp. Vòng lặp while sẽ chạy cho đến khi dòng cuối cùng được đọc.
read
với tùy chọn
-r
để ngăn dấu gạch chéo ngược hoạt động như một ký tự thoát.
read
cắt các ký tự khoảng trắng hàng đầu / dấu (khoảng trắng và tab). Sử dụng tùy chọn
IFS=
trước lệnh
read
để ngăn chặn hành vi này
file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"
Tuyên bố phá vỡ và tiếp tục
Tuyên bố phá vỡ
2
.
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
Tiếp tục tuyên bố
2
, câu lệnh continue sẽ khiến cho việc thực thi trở về đầu vòng lặp và tiếp tục với lần lặp tiếp theo.
i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'
Number: 1 Number: 3 Number: 4 Number: 5 All Done!
Phần kết luận
Từ tháng 1, Toshiba sẽ giảm sản lượng ở nhà máy 30% Các nhà máy chip thường hoạt động 24 giờ trong ngày, nhưng các nhà sản xuất thường bỏ trống cho bất cứ thứ gì từ một số ít của ngày đến một tuần trong suốt kỳ nghỉ lễ để cung cấp cho công nhân của họ một thời gian nghỉ. Các trường hợp ngoại lệ duy nhất là trong các giai đoạn nhu cầu lớn và giá cả tăng cao, khi các nhà máy tiếp tục hoạt động, và trong thời gian sụt giảm, khi thời gian nghỉ thường được mở rộng.
Với nhu cầu cho các con chip rơi xuống, sau này áp dụng trong năm nay. Toshiba sẽ đóng cửa hai dây chuyền sản xuất hiện đại nhất, sử dụng tấm wafer 300 milimet trong 13 ngày kể từ ngày 31 tháng 12 đến ngày 13 tháng 1 trong khi hai dây chuyền cũ hơn sử dụng tấm wafer 200mm và sản xuất ít chip hơn, sẽ không hoạt động trong 4 ngày.
ĐứA trẻ bị bắt ngày 12 tháng 7, bị buộc tội Trong cuộc phỏng vấn đầu tiên kể từ khi bị bắt, được đưa ra cách đây một tuần, Childs cho rằng anh ta không làm gì bất hợp pháp khi làm việc cho thành phố và lập luận rằng hành động của anh ta, được mô tả như là tội phạm của các công tố viên, là phù hợp với thực hành an ninh mạng tiêu chuẩn. Tòa án hình sự trước khi anh ta ngăn anh ta bình luận chi tiết về vụ án, nhưng anh ta vạch ra sự bảo vệ của mình trong các tài liệu tòa án mới được đệ trình, mô tả
[ĐọC thêm: Tốt nhất Các hộp NAS cho truyền thông và sao lưu]
Mặc dù việc tiếp thị và quảng cáo lớn mà Microsoft đã đưa ra cho Bing, công cụ tìm kiếm mới đã không đạt được nhiều lợi ích cho người dùng trong tháng 9, trong khi Google tăng cường sự thống trị của nó, theo comScore. từ 9,3% trong tháng 8 đến 9,4% tháng trước, trong khi Google, một mình ở vị trí đầu tiên, tăng tỷ trọng từ 64,6% lên 64,9%, comScore cho biết hôm thứ Tư. giảm một nửa điểm phần trăm xuống còn 18,8%, để nó ở vị trí thứ hai.
[ĐọC thêm: Các dịch vụ truyền hình trực tuyến tốt nhất]







