Câu lệnh if là một cấu trúc điều kiện giúp xây dựng tính logic, hỗ trợ ra quyết định và quản lý flow của script. Ngoài ra, câu lệnh if còn giúp script phản ứng linh hoạt với các tình huống khác nhau nhờ sự hỗ trợ của nhiều toán tử điều kiện như so sánh, logic, kiểm tra file,… Hãy cùng Vietnix tìm hiểu chi tiết hơn về câu lệnh if trong Bash qua bài viết sau.
Những điểm chính
- Hiểu rõ cách hoạt động của lệnh if trong Bash Script, vai trò quan trọng của nó trong việc kiểm tra và xử lý các điều kiện.
- Phân biệt và sử dụng đúng các cú pháp: lệnh đơn ngoặc vuông
[ ]
, ngoặc vuông đôi[[ ]]
, và ngoặc đơn kép(( ))
. - Hướng dẫn bạn cách sử dụng lệnh if trong các trường hợp khác nhau, từ đơn giản đến phức tạp, để đáp ứng nhu cầu logic đa dạng trong lập trình.
- Cung cấp cho bạn các ví dụ thực tế để minh họa cách sử dụng lệnh if, giúp người đọc áp dụng kiến thức vào các bài toán cụ thể trong lập trình Bash.
- Vietnix – Nhà cung cấp dịch vụ VPS với hiệu suất và sự ổn định vượt trội.
Hiểu đúng về tập lệnh if trong Bash Script
Lệnh if
(If Statement) trong Bash Script là một dạng câu lệnh điều kiện giúp kiểm soát luồng xử lý của chương trình dựa trên việc kiểm tra các điều kiện. Dựa vào kết quả đúng (true) hoặc sai (false) của điều kiện, tập lệnh if
sẽ quyết định thực hiện một hoặc nhiều khối mã. Đây là một phần cơ bản trong lập trình để kiểm tra, xử lý các điều kiện logic trong chương trình Bash.
Giai đoạn đầu để thực hiện tốt các tập lệnh Script trong Bash Shell đầu tiên bạn cần làm quen với các hệ điều hành dựa trên Linux. Một số bản phân phối của Linux (Linux Distro) bạn có thể trải nghiệm thực hiện các câu lệnh trong Linux ban đầu như Ubuntu.
Cách hoạt động của if statement trên shell script
Chức năng chính của câu lệnh if là dùng để kiểm soát và đưa ra quyết định dựa trên các điều kiện cụ thể xem điều kiện đó là đúng hay sai. Nếu một điều kiện cụ thể được thỏa mãn, dòng lệnh if sẽ chạy tập lệnh bash trong môi trường (shell script) nhất định. Ngược lại, nếu điều kiện sai thì sẽ không có bất kỳ lệnh nào được thực thi tại Bash Shell.
Bên cạnh đó, bạn có thể áp dụng thử ngay cách chạy song song lệnh Bash với nhiều script với mỗi cú pháp lệnh khi sử dụng thành thạo. Ngoài đóng vai trò môi trường (shell), lệnh Bash vẫn được xem như command (dòng lệnh) hữu ích trong Linux giúp bạn thuận tiện trong việc thực hiện nhiều tập lệnh
3 cú pháp sử dụng của tập lệnh if trong Bash Shell
Cú pháp 1: Sử dụng lệnh đơn ngoặc vuông [ ] hoặc test
Cú pháp này hỗ trợ 3 loại kiểm tra có điều kiện như điều kiện số, điều kiện dựa trên chuỗi và điều kiện dựa trên tệp.
if [ condition ]; then
#Command to execute if it satisfies the condition
Fi
Hoặc bạn có thể viết như sau:
if test condition; then
Command to execute if it satisfies the condition
fi
Lưu ý
Bạn phải đảm bảo chèn khoảng cách giữa các dấu ngoặc [ ] ở dòng đầu tiên và dấu chấm phẩy ở cuối dấu ngoặc.
Cú pháp 2: Thực thi statement với ngoặc vuông đôi [[ ]]
Dấu ngoặc vuông đôi [[ ]] hoạt động tương tự như dấu ngoặc vuông đơn [ ]. Tuy nhiên, [[ ]] cung cấp chức năng nâng cao hơn so với [ ].
if [[ condition ]]; then
#Command to execute if it satisfies the condition
fi
Cú pháp 3: Thực hiện cú pháp lệnh cùng ngoặc đơn kép (( ))
Sử dụng cú pháp dấu ngoặc đơn kép (( )) rất hữu ích cho các điều kiện dựa trên số hoặc phép tính số học.
if (( condition )); then
#Command to execute if it satisfies the condition
fi
3 cách sử dụng lệnh if trong Bash Script tùy theo ý định
Cách 1: Thực thi lệnh if với một điều kiện
Trong script Bash, câu lệnh if
với một điều kiện là cấu trúc cơ bản nhất. Khi bạn sử dụng một toán tử điều kiện bên trong câu lệnh if
được hiểu là bạn muốn kiểm tra một điều kiện duy nhất. Sau đây là một ví dụ về câu lệnh if
trong Bash với một điều kiện duy nhất:
#!/bin/bash
number=2
#if statement with a single condition
if [ $number -lt 5 ]; then
echo "Biến này nhỏ hơn 5."
fi
Lưu ý
Trong #!/bin/bash , “#!” được gọi là ‘Shebang” hoặc “Hashbang”. Đầu tiên, script khởi tạo một biến number. Tiếp theo, nó sử dụng câu lệnh if kiểm tra xem số được chèn có nhỏ hơn 5 không, nếu điều kiện được thỏa mãn, script sẽ dùng lệnh echo để hiển thị output.
Cách 2: Sử dụng lệnh với nhiều điều kiện
Khi sử dụng câu lệnh if
nhiều điều kiện, bạn không chỉ thực hiện được một số lệnh code block khi nhiều điều kiện được thỏa mãn, mà còn có thể thực hiện bất kỳ lệnh nào nếu một trong các điều kiện đó được thỏa mãn. Để sử dụng nhiều điều kiện trong một câu lệnh if
duy nhất, bạn có thể thêm các toán tử logic (&& hoặc ||) vào giữa mỗi điều kiện như sau:
#!/bin/bash
echo "Nhập username: "
read username
echo "Nhập password: "
read password
if [[ "$username" == "nam" && "$password" == "123" ]]; then
echo "Đăng nhập thành công."
fi
Lưu ý
Ở đây, script nhắc người dùng nhập username và password, sau đó kiểm tra xem 2 điều kiện có đúng không bằng cách sử dụng câu lệnh if. Cuối cùng, nó sẽ phản hồi output nếu cả hai điều kiện đều được đáp ứng.
Cách 3: Sử dụng nhiều câu lệnh if lồng nhau
Đôi khi, bạn có thể cần nhiều câu lệnh if
trong script của mình. Trong trường hợp đó, bạn có thể sử dụng một câu lệnh if
bên trong một câu lệnh if
khác, đây được gọi là câu lệnh if
lồng nhau. Dưới đây là một ví dụ đơn giản cho bạn:
#!/bin/bash
number=60
#Nested if statements
if [ $number -gt 50 ]
then
echo "Số này lớn hơn 50."
if (( $number % 2 == 0 ))
then
echo "Đây là số chẵn."
fi
fi
Lưu ý
Đầu tiên, script khởi tạo một biến number và kiểm tra xem giá trị của biến có lớn hơn 50 không. Nếu điều kiện là đúng, thì nó sẽ nhập câu lệnh if lồng nhau bên trong block if đầu tiên và kiểm tra number có phải là số chẵn không. Cuối cùng, script hiển thị output cho mỗi điều kiện đúng bằng cách sử dụng lệnh echo.
3 ví dụ về cách sử dụng lệnh if trong Bash
Ví dụ 1: Kiểm tra sự tồn tại của file bằng câu lệnh if
Để kiểm tra xem một file có tồn tại và là file thông thường hay không, hãy sử dụng tùy chọn -f
trong biểu thức kiểm tra của câu lệnh if
. Bạn hãy thực hiện theo script bên dưới để kiểm tra sự tồn tại của file:
#!/bin/bash
file_name="file1.txt"
#Checking if the file exists and is a regular file
if [ -f "$file_name" ]; then
echo "$file_name tồn tại ở dạng file thông thường."
fi
Lưu ý
Cú pháp if [ -f “$file_name” ] kiểm tra xem file1.txt có tồn tại trong hệ thống và có phải là tệp thông thường hay không. Nếu điều kiện được thỏa mãn, lệnh này sẽ thực hiện đúng theo biểu thức yêu cầu và hiển thị thông báo kết quả. Ngược lại, lệnh sẽ không trả về giá trị nào.
Ví dụ 2: Sử dụng lệnh if để kiểm tra phép toán chẵn (chia hết)
Số chẵn được định nghĩa là một số nguyên chia hết cho 2 nghĩa là không có phần dư. Toán tử modulo (%) trả về phần dư của phép chia và giúp xác định xem một số có phải là số chẵn hay không. Sau đây là cách bạn có thể xác định xem một số có phải là số chẵn trong Bash nhờ câu lệnh if
:
#!/bin/bash
#Checking if a number is even
is_even_number() {
if [ $(( $1 % 2 )) -eq 0 ]; then
echo "$1 là số chẵn."
fi
}
is_even_number 8
is_even_number 11
Lưu ý
Cú pháp if [ $(( $1 % 2 )) -eq 0 ] bên trong hàm kiểm tra xem phần dư chia cho 2 có bằng 0 hay không, trong đó $1 biểu thị cho giá trị đầu tiên trong danh sách các giá trị mà bạn truyền vào hàm. Nếu phần dư bằng 0, số đó là số chẵn và script in ra output. Ngược lại, nó chỉ ra số đó là số lẻ và script không in ra gì cả.
Ví dụ 3: Xử lý so sánh các số thực bằng câu lệnh if
Trong trường hợp bạn có các số thực khác nhau cần được xử lý trong các script Bash, bạn nên sử dụng câu lệnh if
kết hợp với lệnh bc (Basic Calculator). Dưới đây là một ví dụ về script so sánh các số thực:
#!/bin/bash
#Comparing floating-point numbers in Bash
variable1=5.95
variable2=5.951
#Defining a value of tolerance
tolerance=0.01
#Calculating the difference between the two floating-point numbers
difference=$(bc -l <<< "$variable1 - $variable2")
#Checking if the difference is less than the tolerance value
if (( $(bc -l <<< "$difference <= $tolerance") )); then
echo "Các số này gần bằng nhau."
fi
Giải thích: Đầu tiên, script bắt đầu với hai biến có hai giá trị khác nhau. Sau đó, nó định nghĩa một biến tolerance với giá trị là 0.01, để xác định ngưỡng chênh lệch có thể chấp nhận giữa 2 số. Tiếp theo, script sử dụng lệnh bc để tính toán sự khác biệt giữa hai biến. Sau đó, nó kiểm tra xem sự khác biệt đó có nhỏ hơn hoặc bằng giá trị tolerance hay không, bằng cách sử dụng câu lệnh if và hiển thị kết quả khi điều kiện đúng bằng lệnh echo.
Vietnix – Nhà cung cấp dịch vụ VPS với hiệu suất và sự ổn định vượt trội
Vietnix tự hào mang đến dịch vụ VPS chất lượng cao, đáp ứng mọi nhu cầu từ cá nhân đến doanh nghiệp với hệ thống ổn định, uptime 99.9% và chính sách hỗ trợ khách hàng 24/7/365. Dịch vụ VPS tại Vietnix không chỉ đảm bảo khả năng hoạt động liên tục mà còn đi kèm với tốc độ khởi tạo nhanh chóng trong vòng 1 phút và khả năng nâng cấp cấu hình linh hoạt. Đây là lựa chọn lý tưởng cho mọi dự án từ website cá nhân đến các ứng dụng cần hiệu suất cao.
Nổi bật trong danh mục dịch vụ VPS, VPS AMD của Vietnix được trang bị bộ vi xử lý AMD EPYC thế hệ mới với 24 nhân, 48 luồng và xung nhịp tối đa 3.35 GHz, mang đến khả năng xử lý dữ liệu mạnh mẽ. Kết hợp với ổ cứng NVMe hiện đại, VPS AMD không chỉ tối ưu hóa tốc độ truy cập mà còn hỗ trợ đa nhiệm hiệu quả, đặc biệt phù hợp cho các website có lưu lượng truy cập lớn và ứng dụng đòi hỏi xử lý dữ liệu nặng.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Câu hỏi thường gặp
Có thể sử dụng lệnh if để tạo một menu tương tác trong Bash Script không?
Có thể. Sử dụng các vòng lặp và các lệnh nhập liệu từ người dùng (tạo menu) sẽ giúp bạn xây dựng những menu đa dạng và linh hoạt.
Có thể sử dụng lệnh if để kiểm tra kết quả của một lệnh khác trong Bash Script không?
Có thể. Người dùng có thể kiểm tra kết quả bằng mã trả về từ cách thực hiện
Tóm lại, câu lệnh if là một thành phần không thể thiếu trong Bash, giúp tối ưu hóa và đánh giá script của bạn để đưa ra quyết định tối ưu dựa trên các điều kiện khác nhau. Hy vọng bài viết có thể giúp bạn hiểu rõ hơn cũng như ứng dụng được lệnh if . Để tìm hiểu sâu hơn về Linux bạn có thể tham khảo các bài viết dưới đây: