Vòng lặp là công cụ chương trình có tính năng mạnh, cho phép bạn có thể lặp lại một tập hợp các lệnh. Trong chương này, bạn sẽ tìm hiểu qua các ví dụ thực hành về vòng lặp có trong các chương trình shell.
Bạn sẽ sử dụng các vòng lặp khác nhau trên cơ sở các tình huống khác nhau. Ví dụ, vòng lặp while sẽ chạy lệnh đã cho tới khi điều kiện đã cho vẫn còn đúng, trong khi đó vòng lặp until sẽ chạy tới khi điều kiện đã cho trở nên đúng.
Một khi bạn có các bài thực hành chương trình tốt, bạn sẽ bắt đầu sử dụng vòng lặp thích hợp trên cơ sở tình huống đã cho. Ở đây, vòng lặp while và for là có sẵn trong hầu hết các ngôn ngữ chương trình khác như C, C++ và PERL etc.
Lồng các vòng lặp trong Unix/Linux
Tất cả các vòng lặp hỗ trợ khái niệm lồng, có nghĩa là bạn có thể đặt một vòng lặp vào bên trong một vòng lặp tương tự hoặc các vòng lặp khác. Việc lồng này có thể không giới hạn số lượng tối đa vòng lặp, nó phụ thuộc vào yêu cầu của bạn.
Dưới đây là ví dụ của lồng vòng lặp while, và theo cách tương tự, các vòng lặp khác có thể được lồng tùy theo yêu cầu chương trình.
Lồng vòng lặp while trong Unix/Linux
Nó là có thể để sử dụng vòng lặp while như là một phần của thân của một vòng lặp while khác.
Cú pháp:
while command1 ; # Day la vong lap thu nhat, la vong lap ben ngoai do Cac lenh de thuc thi neu command1 la true while command2 ; # Day la vong lap thu hai, la vong lap ben trong do Cac lenh de thuc thi neu command2 la true done Cac lenh de thuc thi neu command1 la true done
Ví dụ:
Sau đây là ví dụ đơn giản của lồng vòng lặp:
#!/bin/sh a=0 while [ "$a" -lt 10 ] # this is loop1 do b="$a" while [ "$b" -ge 0 ] # this is loop2 do echo -n "$b " b=`expr $b - 1` done echo a=`expr $a + 1` done
Nó tạo ra kết quả sau. Nó là quan trọng để ghi nhớ cách echo -n làm việc ở đây. Tại đây tùy chọn -n cho phép echo tránh việc in một dòng ký tự mới.
0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 5 4 3 2 1 0 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Theo Tutorialspoint
Bài trước: Điều khiển luồng trong Shell
Bài tiếp: Điều khiển vòng lặp trong Unix/Linux