- Chuyên mục khác :
- Git cơ bản và nâng cao
- ·
- MySQL cơ bản và nâng cao
- ·
- MongoDB cơ bản và nâng cao
- ·
- SQL cơ bản và nâng cao
- ·
- Linux cơ bản và nâng cao
- Học Unix/Linux cơ bản
- Học Unix/Linux cơ bản và nâng cao
- Unix/Linux là gì ?
- Quản lý File trong Unix/Linux
- Quản lý thư mục trong Unix/Linux
- Quyền hạn/Chế độ truy cập file trong Unix
- Hướng dẫn cài đặt Unix/Linux
- Các tiện ích cơ bản: in, email trong Unix
- Filter và Pipe trong Unix/Linux
- Quản lý tiến trình trong Unix/Linux
- Các tiện ích giao tiếp mạng trong Unix/Linux
- Trình soạn thảo vi trong Unix/Linux
- Chương trình Unix Shell
- Shell là gì?
- Sử dụng các biến trong Shell
- Các biến đặc biệt trong Unix/Linux
- Sử dụng mảng trong Shell
- Các toán tử Shell cơ bản
- Điều khiển luồng trong Shell
- Vòng lặp trong Unix/Linux
- Điều khiển vòng lặp trong Unix/Linux
- Trình thay thế Shell
- Các kỹ thuật trích dẫn trong Unix/Linux
- Điều hướng IO trong Unix/Linux
- Các hàm Shell
- ManPage Help trong Unix
- Hoạt động nâng cao trong Unix/Linux
- Regular Expression trong Unix/Linux
- Cơ bản về hệ thống File trong Unix/Linux
- Quản lý người dùng trong Unix/Linux
- Hiệu năng hệ thống trong Unix/Linux
- Hệ thống ghi log trong Unix/Linux
- Signal và Trap trong Unix/Linux
- Tài liệu Unix tham khảo
- Các lệnh hữu ích trong Unix/Linux
- Hàm toán học có sẵn trong Shell
- Tài liệu tham khảo Unix/Linux
Chương trước bạn đã được hướng dẫn cách tạo vòng lặp và làm việc với chúng để thực hiện các nhiệm vụ khác nhau. Đôi khi bạn cần dừng một vòng lặp hoặc tiếp tục tiến hành quá trình lặp đi lặp lại của chúng.
Trong chương này, bạn sẽ học 2 lệnh được sử dụng trong điều khiển vòng lặp Shell:
Lệnh break
Lệnh continue
Vòng lặp vô hạn trong Unix/Linux
Tất cả vòng lặp có một vòng đời giới hạn và chúng kết thúc khi điều kiện là đúng hoặc sai phụ thuộc vào vòng lặp.
Một vòng lặp có thể tiếp tục tiến hành vĩnh viễn do chưa so khớp đúng với điều kiện yêu cầu. Một vòng lặp vô hạn là một vòng lặp mà chạy với số lần không đếm được.
Ví dụ
Dưới đây là ví dụ đơn giản về sử dụng vòng lặp while để hiển thị các số từ 0 đến 9.
#!/bin/sh a=10 while [ $a -ge 10 ] do echo $a a=`expr $a + 1` done
Vòng lặp này là vòng lặp vô hạn bởi vì a luôn luôn lớn hơn hoặc bằng 10 và nó sẽ không bao giờ nhỏ hơn 10.
Lệnh break trong Unix/Linux
Lệnh break được sử dụng để kết thúc tiến trình chạy của một vòng lặp đầy đủ, sau khi hoàn thành chạy tất cả các dòng trong code tới lệnh break này. Nó sau đó bước ra khỏi đoạn code sau khi kết thuc vòng lặp.
Cú pháp
Lệnh break sau được sử dụng để thoát khỏi một vòng lặp.
break
Lệnh break có thể được sử dụng để thoát khỏi một vòng lặp sử dụng định dạng sau:
break n
Tại đây n xác định vòng lặp thứ n được bao quanh để thoát ra khỏi từ đó:
Ví dụ
Ví dụ sau chỉ vòng lặp sau sẽ kết thúc ngay sau khi điều kiện trở thành 5:
#!/bin/sh a=0 while [ $a -lt 10 ] do echo $a if [ $a -eq 5 ] then break fi a=`expr $a + 1` done
Nó sẽ hiển thị kết quả sau:
0 1 2 3 4 5
Dưới đây là một ví dụ đơn giản của lồng vòng lặp. Script thoát ra khỏi cả hai vòng lặp nếu var1 bằng 2 và var2 bằng 0.
#!/bin/sh for var1 in 1 2 3 do for var2 in 0 5 do if [ $var1 -eq 2 -a $var2 -eq 0 ] then break 2 else echo "$var1 $var2" fi done done
Nó sẽ tạo kết quả sau. Trong vòng lặp bên trong bạn có một lệnh break với đối số 2. Nó chỉ rằng nếu điều kiện được thỏa mãn bạn nên thoát khỏi vòng lặp ở bên ngoài.
1 0 1 5
Lệnh continue trong Unix/Linux
Lệnh continue này tương tự như lệnh break, ngoại trừ việc nó gây ra sự lặp lại hiện tại của các vòng lặp để thoát ra, chứ không phải toàn bộ vòng lặp.
Lệnh này được sử dụng khi một lỗi đã xảy ra và bạn muốn cố để chạy sự lặp kế tiếp của vòng lặp.
Cú pháp:
continue
Giống với lệnh break, một đối số nguyên có thể được cung cấp cho lệnh continue để nhảy qua lệnh này từ vòng lặp được lồng.
continue n
Ở đây n xác định vòng lặp được bao thứ n để tiếp tục từ đó.
Ví dụ
Vòng lặp sau sử dụng lệnh continue mà trở lại từ lệnh continue và bắt đầu tiến trình lệnh kế tiếp.
#!/bin/sh NUMS="1 2 3 4 5 6 7" for NUM in $NUMS do Q=`expr $NUM % 2` if [ $Q -eq 0 ] then echo "Number is an even number!!" continue fi echo "Found odd number" done
Nó sẽ tạo ra kết quả sau:
Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number
Các bài học UNIX phổ biến khác tại s2sontech:
- Quản lý File
- Thư mục
- Quyền truy cập File
- Cài đặt Unix/Linux
- Các tiện ích cơ bản
- Các Pipe & Bộ lọc (Filter)
Bình luận (0)