Câu lệnh if
Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 70 trên 82.
Cho đến giờ, các script của bạn chạy từng lệnh từ trên xuống dưới mà không đưa ra quyết định nào. Nhưng nếu bạn muốn script thực hiện những việc khác nhau tùy theo một số điều kiện thì sao? Đó là lúc câu lệnh if phát huy tác dụng.
Câu lệnh if giúp tập lệnh đưa ra quyết định. Câu lệnh kiểm tra xem điều kiện có đúng không, nếu đúng thì chạy một khối code. Đây là cấu trúc cơ bản:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiĐiều kiện nằm trong dấu ngoặc vuông, có khoảng trắng ở hai bên. Từ khóa then đánh dấu phần bắt đầu của code cần chạy, còn fi (viết ngược lại từ if) kết thúc câu lệnh.
Bạn cũng có thể xử lý trường hợp điều kiện sai bằng else:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiCác toán tử so sánh phổ biến cho số gồm -eq (bằng), -ne (không bằng), -gt (lớn hơn), -lt (nhỏ hơn), -ge (lớn hơn hoặc bằng) và -le (nhỏ hơn hoặc bằng). Với chuỗi, dùng = để so sánh bằng và != để so sánh không bằng.
Luôn nhớ thêm khoảng trắng bên trong dấu ngoặc và đặt biến trong dấu nháy để tránh lỗi khi giá trị trống.
Thử thách
DễTạo một shell script có tên check_score.sh dùng câu lệnh if để đánh giá điểm bài kiểm tra.
Script của bạn cần:
- Bắt đầu bằng dòng shebang (
#!/bin/bash) - Tạo biến
scorecó giá trị75 - Dùng câu lệnh if để kiểm tra xem điểm có lớn hơn hoặc bằng 70 hay không
- Nếu đúng, in ra:
You passed! - Nếu sai, in ra:
You failed.
Cấp quyền thực thi cho script rồi chạy. Vì điểm là 75, đầu ra của bạn sẽ là:
You passed!Gợi ý: Nhớ dùng
-geđể so sánh “lớn hơn hoặc bằng”, thêm khoảng trắng bên trong dấu ngoặc vuông và kết thúc câu lệnh if bằngfi.Ở đây không có trình chỉnh sửa tệp, vì vậy hãy viết tệp trực tiếp từ shell bằng here-document: nhập
cat > check_score.sh << 'EOF', sau đó nhập các dòng của script, rồi nhập dòng cuối chỉ chứaEOF.
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản
4Thư mục
Tạo thư mụcSao chép thư mụcDi chuyển và đổi tên thư mụcXóa thư mụcÔn tập: thao tác với thư mục7Nội dung tệp
Head và tailĐếm từLệnh sortLệnh uniqueCơ bản về grepGrep với các cờÔn tập: Thám tử văn bản13Cơ bản về viết tập lệnh shell
Tập lệnh shell là gìTạo và chạy tập lệnhBiến trong tập lệnhĐầu vào của người dùng trong tập lệnhCâu lệnh ifVòng lặp forVòng lặp whileÔn tập: đoán số2Điều hướng
In đường dẫn thư mục hiện tạiLiệt kê tệpChuyển thư mụcĐường dẫn tuyệt đối và tương đốiThư mục chính và thư mục gốcÔn tập: tìm đường8Chuyển hướng
Đầu ra chuẩnGhi đè vào tệpGhi thêm vào tệpĐầu vào chuẩnLỗi chuẩnÔn tập: Công cụ tạo nhật ký6Ký tự đại diện và mẫu
Ký tự đại diện dấu saoKý tự đại diện dấu hỏiKý tự đại diện trong ngoặc vuôngKết hợp ký tự đại diệnÔn tập: thao tác có chọn lọc9Đường ống
Đường ống là gìNối hai lệnh bằng đường ốngNối nhiều lệnh bằng đường ốngDùng đường ống với grepÔn tập: luồng xử lý dữ liệuTự luyện tập: Playground Terminal