Bài viết này sẽ giới thiệu bạn về Về Conditional Statement Trong Bash. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php
1. Câu lệnh điều kiện `if`
1.1. If then fi
Cấu trúc câu lệnh:
if [ điều kiện ] then câu lệnh xử lý 1 câu lệnh xử lý 2
.. fi
Quy trình xử lý:
Nếu điều kiện kiểm tra trong dòng lệnh if trả về kết quả True hoặc khác 0, chương trình thực hiện xử lý các câu lệnh bên trong khối then.
Nếu điều kiện kiểm tra trong dòng lệnh if trả về kết quả False, bỏ qua khối lệnh if then fi.
Ví dụ minh họa:
$ cat condition-statement.sh n=${1} if [ $n -eq 10 ] then echo "n bang 10" fi
Chạy chương trình trên và thu được kết quả:
$ ./condition-statement.sh 10 n bang 10
2. If then else fi
Cấu trúc câu lệnh:
if [ điều kiện ] then câu lệnh xử lý 1 câu lệnh xử lý 2 .. else câu lệnh xử lý 3 câu lệnh xử lý 4 .. fi
Quy trình xử lý:
Kiểm tra điều kiện tại dòng lệnh if:
- Nếu đúng: xử lý khối lệnh then.
- Nếu sai: xử lý khối lệnh else.
Ví dụ minh họa:
$ cat condition-statement.sh n=$1 if [ $n = 10 ] then echo "n bang 10" else echo "n khong bang 10"
Chạy chương trình trên và thu được kết quả:
- Khi chạy chương trình với input là 10.
$ ./condition-statement.sh 10 n bang 10
- Khi chạy chương trình với input là số khác 10.
$ ./condition-statement.sh 9 n khong bang 10
3. If then elif then else fi.
Cấu trúc câu lệnh:
if [ điều kiện 1 ] then câu lệnh xử lý 1 câu lệnh xử lý 2 .. elif [ điều kiện 2 ] then câu lệnh xử lý 3 câu lệnh xử lý 4 .. else câu lệnh xử lý 5 fi
Quy trình xử lý:
Kiểm tra diều kiện 1 tại dòng lệnh if:
- Nếu đúng: thực thi khối lệnh then sau if.
- Nếu sai: kiểm tra tiếp tục điều kiện 2 tại dòng lệnh elif:
- Nếu đúng: thực thi khối lệnh then sau elif.
- Nếu sai: thực thi khối lệnh else.
Ví dụ minh họa:
$ cat condition-statement.sh #!/bin/bash n=$1 if [ $n -eq 10 ] then echo "n bang 10" elif [ $n -lt 10 ] echo "n nho hon 10" else echo "n lon hon 10" fi
Chạy chương trình thu được kết quả:
- Khi chạy chương trình với input là 10.
$ ./condition-statement.sh 10 n bang 10
- Khi chạy chương trình với input là số nhỏ hơn 10.
$ ./condition-statement.sh 9 n nho hon 10
- Khi chạy chương trình với input lơn hơn 10.
$ ./condition-statement.sh 13 n lon hon 10
2. Câu lệnh điều kiện `case`
Cấu trúc câu lệnh:
case var in mẫu 1 ) câu lệnh xử lý 1 câu lệnh xử lý 2 ... ;; mẫu 2 ) câu lệnh xử lý 3 câu lệnh xử lý 4 ... ;; esac
Quy trình xử lý:
Kiểm tra giá trị tại biến nhập vào var. So sánh giá trị này với các mẫu bên dưới. Nếu giá trị tại biến var trùng với một trong các mẫu bên dưới, khối lệnh của khối mẫu đó sẽ được thực hiện.
Ví dụ minh họa:
$ cat condition-statement.sh country_code=$1 case $country_code in vn | VN ) country="VietNam" ;; th | TH ) country="ThaiLand" ;; sg | SG ) country="Singapore" ;; * ) echo "Khong tim thay quoc gia phu hop tren he thong." ;; esac if [ $country ]; then echo "Ten quoc gia voi ma $country_code la $country" fi
Chạy chương trình thu được kết quả:
$ ./condition-statement.sh vn Ten quoc gia voi ma vn la VietNam
$ ./condition-statement.sh TH
Ten quoc gia voi ma th la ThaiLand $ ./condition-statement.sh sg Ten quoc gia voi ma SG la Singapore $ ./condition-statement.sh EU Khong tim thay quoc gia phu hop tren he thong.
3. Câu lệnh điều kiện `select`
Cấu trúc câu lệnh:
select var in list do câu lệnh xử lý 1 câu lệnh xử lý 2 .. done
Quy trình xử lý:
Tương tự câu lệnh case, select kiểm tra dựa trên các mẫu được liệt kê trong danh sách list. Select hỗ trợ tạo một menu các lựa chọn từ các mẫu để người dùng lựa chọn và thực khi khối lệnh trong đó.
Ví dụ minh họa:
$ cat condition-statement.sh PS3="Lua chon: " select country_code in VN TH SG do case $country_code in VN ) country="VietNam" ;; TH ) country="ThaiLand" ;; SG ) country="Singapore" ;; esac echo "Ten quoc gia voi ma $country_code la $country" break done
Chạy chương trình và thu được kết quả:
$ ./condition-statement.sh 1) VN 2) TH 3) SG Lua chon: 2 Ten quoc gia voi ma TH la ThaiLand
Chúc bạn thực hiện thành công!
THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST
>> THUÊ SERVER – THUÊ COLOCATION
>> THUÊ CLOUD – VPS
>> THUÊ HOSTING
>> GEOTRUST SSL – LICENSE