Trong kịch bản bash, câu lệnh IF là một trong những công cụ quan trọng nhất để đưa ra quyết định và kiểm soát luồng của một tập lệnh. Nó cho phép bạn kiểm tra một điều kiện và thực thi các khối mã khác nhau dựa trên kết quả của bài kiểm tra đó. Với câu lệnh IF, bạn có thể tạo các tập lệnh mạnh mẽ có thể xử lý một loạt các kịch bản và tác vụ.
Cú pháp cơ bản của câu lệnh IF trong bash là:
Nếu điều kiện
sau đó
Mã-to-Execute-IF-Điều kiện-IS-True
khác
mã-to-Execute-if-Medi-is-false
fi
Ở đây, điều kiện là điều kiện cần kiểm tra và mã-to-Execute-IF-CoDtion-is-True và Code-to-Execute-IF-Cons-is-false là các khối mã được thực thi tùy thuộc vào kết quảcủa điều kiện. Điều quan trọng cần lưu ý là mỗi dòng mã trong các khối phải được theo sau bởi dấu chấm phẩy (;).
Bạn cũng có thể sử dụng từ khóa Elif, là viết tắt của "nếu không", để kiểm tra nhiều điều kiện theo một chuỗi. Điều này cho phép bạn tạo ra các cấu trúc ra quyết định phức tạp hơn trong các tập lệnh của bạn.
Bash nếu tuyên bố
Trong kịch bản bash,if
Tuyên bố được sử dụng để đưa ra quyết định dựa trên một điều kiện nhất định. Nó cho phép bạn thực thi một tập hợp các lệnh cụ thể dựa trên việc một điều kiện là đúng hay sai. Cú pháp cơ bản choif
Tuyên bố như sau:
Cú pháp | Sự miêu tả |
---|---|
Nếu điều kiện thì # mã để thực thi nếu điều kiện là đúng # mã sẽ thực thi nếu điều kiện là sai fi |
Tuyên bố IF bao gồm một số điều khoản. Cáctình trạng là điều kiện cần kiểm tra, tiếp theo làsau đó Từ khóa. Nếu điều kiện là đúng, khối mã sausau đó được thực hiện. Nếu không, khối mã saukhác được thực hiện. Cácfi Từ khóa đánh dấu sự kết thúc của câu lệnh if. |
Dưới đây là một số ví dụ:
Ví dụ | Sự miêu tả |
---|---|
Nếu [$ thời tiết = "Sunny"] thì Echo "Đó là một ngày nắng!"Khác Echo "Hôm nay không có nắng."fi |
Ví dụ này kiểm tra xem biến có thể$ thời tiết bằng với chuỗi "Sunny". Nếu có, nó in "Đó là một ngày nắng!". Nếu không, nó in "Hôm nay không có nắng." |
Nếu [[$ user_input =~^[0-9]+$]] sau đó echo "Đầu vào hợp lệ: $ user_input là một số."Khác Echo "Đầu vào không hợp lệ: $ user_input không phải là một số."fi |
Ví dụ này kiểm tra xem đầu vào người dùng có phải là số hợp lệ hay không bằng cách kiểm tra xem nó có bao gồm một hoặc nhiều chữ số hay không. Nếu có, nó in "Đầu vào hợp lệ: $ user_input là một số.". Mặt khác, nó in "Đầu vào không hợp lệ: $ user_input không phải là một số." |
if (( $num1 == $num2 )) thì echo "Các số bằng nhau."else echo "Các con số không bằng nhau."fi |
Ví dụ này so sánh giá trị của hai biến,$num1 Và$num2 . Nếu chúng bằng nhau, nó sẽ in "Các số bằng nhau.". Nếu không, nó sẽ in ra "Các số không bằng nhau." |
Điều quan trọng cần lưu ý là từ khóafi
luôn luôn trỏ lại tương ứngif
tuyên bố. Ngoài ra, trong tập lệnh bash,if
tuyên bố có thể được sử dụng theo nhiều cách khác nhau để tạo ra các điều kiện và cấu trúc ra quyết định phức tạp hơn. Hướng dẫn này cung cấp một cái nhìn tổng quan chung về cách sử dụng cơ bản củaif
tuyên bố trong bash.
Ví dụ về cú pháp If-Else của Linux Shell
Trong tập lệnh shell Linux,nếu khác
tuyên bố là một cấu trúc cơ bản cho phép bạn đưa ra quyết định dựa trên các điều kiện nhất định. Hướng dẫn này sẽ hướng dẫn bạn cách sử dụng cơ bản củanếu khác
cú pháp và cung cấp các ví dụ để giúp bạn hiểu cách áp dụng nó trong tập lệnh của mình.
Cấu trúc cơ bản củanếu khác
tuyên bố trong Bash như sau:
- Các
if
từ khóa được theo sau bởi một điều kiện, được đặt trong dấu ngoặc vuông ([ ]
), điều đó ước tính làĐÚNG VẬY
hoặcSAI
. - Nếu điều kiện đúng, mã bên trong
if
khối được thực thi. - Nếu điều kiện sai, mã bên trong
khác
khối được thực thi nếu nó tồn tại.
Đây là một ví dụ đơn giảnnếu khác
tuyên bố:
#!/bin/bash
thời tiết="nắng"
if [ "$thời tiết" == "nắng" ]; sau đó
echo "Thật là một ngày đẹp trời!"
khác
echo "Thời tiết không được tốt lắm."
fi
Trong ví dụ này, biếnthời tiết
giữ chuỗinhiều nắng
. Cácif
câu lệnh kiểm tra nếuthời tiết
bằngnhiều nắng
. Nếu đúng như vậy, mã bên trongif
khối thực thi và in thông báo "Hôm nay là một ngày đẹp trời!". Ngược lại, mã bên trongkhác
khối thực thi và in thông báo "Thời tiết không quá tuyệt vời."
Bạn cũng có thể sử dụngyêu tinh
từ khóa để xử lý nhiều điều kiện. Đây là một ví dụ:
#!/bin/bash
thời tiết="mưa"
if [ "$thời tiết" == "nắng" ]; sau đó
echo "Thật là một ngày đẹp trời!"
Elif [ "$thời tiết" == "mưa" ]; sau đó
echo "Đừng quên ô của bạn!"
khác
echo "Điều kiện thời tiết không xác định."
fi
Trong ví dụ này,if
câu lệnh đầu tiên kiểm tra xemthời tiết
bằngnhiều nắng
. Nếu đúng như vậy thì khối mã đầu tiên sẽ được thực thi. Nếu không,yêu tinh
câu lệnh kiểm tra nếuthời tiết
bằngnhiều mưa
. Nếu đúng thì khối mã thứ hai sẽ được thực thi. Nếu cả hai điều kiện đều không đúng thì mã bên trongkhác
khối thực thi.
Điều quan trọng cần lưu ý là các chuỗi trong bash là nhạy cảm với trường hợp. Vì vậy, "Sunny" khác với "Sunny". Đảm bảo bạn cung cấp vỏ chính xác trong điều kiện của bạn.
Hãy nhớ rằngnếu khác
Tuyên bố không giới hạn trong việc xử lý so sánh chuỗi. Bạn có thể sử dụng nó với các nhà khai thác khác, chẳng hạn như-Eq
để so sánh số,-lt
với ít hơn,-gt
cho lớn hơn, và nhiều hơn nữa.
Kết luận,nếu khác
Tuyên bố là một công cụ mạnh mẽ trong kịch bản Linux Shell cho phép bạn đưa ra quyết định dựa trên các điều kiện. Với khả năng xử lý nhiều điều kiện và tổnếu khác
Các câu lệnh, bạn có thể tạo logic phức tạp trong tập lệnh của mình. Hiểu cú pháp này là điều cần thiết cho bất kỳ người đam mê kịch bản shell hoặc quản trị viên hệ thống.
Sử dụng các câu lệnh nếu được lồng vào bash
Nested nếu các câu nói là một tính năng mạnh mẽ trong kịch bản bash cho phép ra quyết định phức tạp hơn. Trong Bash, một câu lệnh IF là cấu trúc cơ bản cho phép bạn thực thi một khối mã dựa trên một điều kiện. Tuy nhiên, đôi khi bạn có thể cần đưa ra nhiều quyết định hoặc thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau trong một kịch bản. Đó là nơi lồng nhau nếu các tuyên bố đến.
Khi sử dụng các câu lệnh Nested IF, bạn có thể có nhiều câu lệnh IF trong nhau, tạo ra một cấu trúc cho phép ra quyết định phức tạp hơn. Điều này có thể đặc biệt hữu ích khi xử lý các điều kiện phức tạp hoặc khi bạn cần thực thi mã khác nhau dựa trên nhiều biến.
Đây là một ví dụ về cách sử dụng các câu lệnh nếu có thể sử dụng câu lệnh:
#!/bin/bash
Echo "Nhập một số từ 1 đến 7:"
Đọc user_input
Nếu [$ user_inpu t-eq 1]; sau đó
Echo "Bạn đã nhập số 1."
Elif [$ user_inpu t-eq 2]; sau đó
Echo "Bạn đã nhập số 2."
khác
Nếu [$ user_inpu t-eq 3]; sau đó
Echo "Bạn đã nhập số 3."
Elif [$ user_inpu t-eq 4]; sau đó
Echo "Bạn đã nhập số 4."
khác
Echo "Bạn đã nhập một số lớn hơn 4."
fi
fi
Trong ví dụ này, tập lệnh nhắc người dùng nhập một số từ 1 đến 7. Câu lệnh IF đầu tiên kiểm tra xem người dùng có nhập 1 không và nếu vậy, xuất ra "Bạn đã nhập số 1."Mặt khác, tập lệnh chuyển sang các câu lệnh IF Nested, trong đó kiểm tra số 2, 3 và 4. Cuối cùng, nếu không có điều kiện nào trong số này được đáp ứng, thì khác sẽ chặn đầu ra "Bạn đã nhập một số lớn hơn 4."
Lồng nhau nếu các câu lệnh có thể được sử dụng để xử lý các điều kiện phức tạp hơn nữa. Ví dụ: bạn có thể có câu lệnh NOSTED IF trong khối khác để kiểm tra xem người dùng có nhập chuỗi hợp lệ hay câu lệnh IF khác trong khối IF để kiểm tra xem tệp có tồn tại trong thư mục không.
Nói chung, các câu lệnh nếu được lồng vào cùng một cú pháp cơ bản như một câu lệnh IF duy nhất: từ khóa "nếu", theo sau là điều kiện để kiểm tra, sau đó là một khối mã để thực thi nếu điều kiện là đúng. Sau đó, bạn có thể sử dụng "Elif" (viết tắt của nếu không) để thêm các điều kiện và khối mã bổ sung và "khác" để chỉ định những gì sẽ xảy ra nếu không có điều kiện nào được đáp ứng.
Một điều quan trọng cần lưu ý là bạn có thể làm tổ nếu các câu lệnh bao nhiêu lần bạn cần, nhưng hãy chắc chắn duy trì vết lõm thích hợp để làm cho mã của bạn dễ đọc hơn. Ngoài ra, hãy nhớ đóng mỗi câu lệnh IF với từ khóa "FI".
Tóm lại, lồng nhau nếu các tuyên bố trong Bash cung cấp một công cụ mạnh mẽ để đưa ra các quyết định phức tạp trong các kịch bản của bạn. Bằng cách sử dụng các câu lệnh Nested IF, bạn có thể tạo một luồng mã logic thực thi các hành động khác nhau dựa trên các điều kiện khác nhau, làm cho các tập lệnh của bạn linh hoạt và mạnh mẽ hơn.