Câu lệnh điều kiện Bash thực hiện tính toán hoặc hành động khác nhau tùy thuộc vào việc một điều kiện boolean do lập trình viên chỉ định đánh giá thành true hay false. Các câu lệnh này dùng để thực thi các phần khác nhau của chương trình shell tùy thuộc vào việc điều kiện nhất định có đúng hay không. Khả năng phân nhánh làm cho shell scripts mạnh mẽ.
Trong Bash, chúng ta có các câu lệnh điều kiện sau:
- if..then..fi statement (If đơn giản)
- if..then..else..fi statement (If-Else)
- if..elif..else..fi statement (Else If ladder)
- if..then..else..if..then..fi..fi..(Nested if)
Chúng tương tự câu lệnh if awk chúng ta thảo luận trước.
1. Câu Lệnh Bash If..then..fi
if [ conditional expression ] then statement1 statement2 . fi
Câu lệnh if này cũng gọi là if đơn giản. Nếu biểu thức điều kiện cho trước đúng, nó vào và thực thi câu lệnh bao giữa từ khóa "then" và "fi". Nếu biểu thức cho trước trả về 0, thì danh sách câu lệnh tiếp theo được thực thi.
ví dụ if then fi:
#!/bin/bash count=100 if [ $count -eq 100 ] then echo "Count is 100" fi
2. Câu Lệnh Bash If..then..else..fi
If [ conditional expression ] then statement1 statement2 . else statement3 statement4 . fi
Nếu biểu thức điều kiện đúng, nó thực thi statement1 và 2. Nếu biểu thức điều kiện trả về 0, nó nhảy sang phần else, và thực thi statement3 và 4. Sau thực thi phần if/else, thực thi tiếp tục với các câu lệnh tiếp theo.
ví dụ if then else fi:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else echo "Count is not 100" fi
Lưu ý: Bài viết này là một phần của loạt bài hướng dẫn Bash đang diễn ra.
3. Bash If..elif..else..fi
If [ conditional expression1 ] then statement1 statement2 . elif [ conditional expression2 ] then statement3 statement4 . . else statement5 fi
Bạn có thể dùng if .. elif.. if, nếu bạn muốn chọn một trong nhiều khối mã để thực thi. Nó kiểm tra expression 1, nếu đúng thực thi statement 1,2. Nếu expression1 sai, nó kiểm tra expression2, và nếu tất cả biểu thức sai, thì nó vào khối else và thực thi câu lệnh trong khối else.
ví dụ if then elif then else fi:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" elif [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi
4. Bash If..then..else..if..then..fi..fi..
If [ conditional expression1 ]
then
statement1
statement2
.
else
if [ conditional expression2 ]
then
statement3
.
fi
fi
Câu lệnh If và else có thể lồng nhau trong bash. Từ khóa "fi" chỉ kết thúc của câu lệnh if bên trong và tất cả câu lệnh if phải kết thúc bằng từ khóa "fi".
Ví dụ "if then elif then else fi" nêu ở trên có thể chuyển thành nested if như dưới.
#!/bin/bash
count=99
if [ $count -eq 100 ]
then
echo "Count is 100"
else
if [ $count -gt 100 ]
then
echo "Count is greater than 100"
else
echo "Count is less than 100"
fi
fi
Trong bài tiếp theo, chúng ta sẽ thảo luận về cách dùng biểu thức điều kiện Bash với ví dụ thực tế.
Đọc Thêm
Bash 101 Hacks, tác giả Ramesh Natarajan. Tôi dành hầu hết thời gian trên môi trường Linux. Vì vậy, tự nhiên tôi là fan hâm mộ lớn của dòng lệnh Bash và shell scripting. 15 năm trước, khi tôi làm việc trên các hương *nix khác nhau, tôi thường viết nhiều mã trên C shell và Korn shell. Những năm sau, khi bắt đầu làm quản trị hệ thống trên Linux, tôi khá nhiều tự động hóa mọi tác vụ có thể bằng Bash shell scripting. Dựa trên kinh nghiệm Bash, tôi đã viết eBook Bash 101 Hacks chứa 101 ví dụ thực tế về cả dòng lệnh Bash và shell scripting. Nếu bạn đang suy nghĩ về việc thành thạo Bash, hãy làm ơn đọc cuốn sách này, nó sẽ giúp bạn kiểm soát dòng lệnh Bash và shell scripting của mình.