Làm thế nào để viết IF-báo cáo trong một Bash-Script

Lệnh, Cú pháp và Ví dụ

Với câu lệnh if, là một loại câu lệnh có điều kiện, bạn có thể thực hiện các hành động khác nhau tùy thuộc vào các điều kiện được chỉ định. Nó mang lại hiệu quả cho hệ thống khả năng đưa ra quyết định.

Một ví dụ về dạng đơn giản nhất của câu lệnh if sẽ là:

count = 5 nếu [$ count == 5] sau đó echo "$ count" fi

Trong ví dụ này, biến "count" được sử dụng để chỉ định một điều kiện được sử dụng như một phần của câu lệnh if. Trước khi câu lệnh if được thực hiện, biến "count" được gán giá trị "5". Câu lệnh if sau đó kiểm tra xem giá trị của "count" là "5" hay không. Nếu đúng như vậy, câu lệnh giữa các từ khóa "then" và "fi" được thực hiện, nếu không thì bất kỳ câu lệnh nào sau câu lệnh if được thực thi. Từ khóa "fi" là "if" được viết ngược. Ngôn ngữ kịch bản lệnh bash sử dụng quy ước này để đánh dấu sự kết thúc của một biểu thức phức tạp, như một câu lệnh if-statement hoặc case-statements.

Câu lệnh "echo" in đối số của nó, trong trường hợp này, giá trị của biến "đếm", đến cửa sổ đầu cuối. Sự thụt dòng mã giữa các từ khóa của câu lệnh if-cải thiện khả năng đọc nhưng không cần thiết.

Nếu bạn có một tình huống mà một đoạn mã sẽ được thực thi chỉ khi một điều kiện không đúng, bạn có thể sử dụng từ khóa "else" trong câu lệnh if, như trong ví dụ này:

count = 5 nếu [$ count == 5] sau đó echo "$ count" else echo "count is not 5" fi

Nếu điều kiện "$ count == 5" là true, hệ thống sẽ in giá trị của biến "count", nếu không nó sẽ in chuỗi "count is not 5".

Nếu bạn muốn phân biệt giữa nhiều điều kiện, bạn có thể sử dụng từ khóa "elif", được lấy từ "else if", như trong ví dụ sau:

nếu [$ count == 5] sau đó echo "count là five" elif [$ count == 6] thì echo "count is six" khác echo "none of the above" fi

Nếu "đếm" là "5", hệ thống in ra "đếm là năm". Nếu "đếm" không phải là "5" nhưng "6", hệ thống in "đếm là sáu". Nếu nó không phải là "5" hoặc "6", hệ thống sẽ in "không có gì ở trên".

Như bạn có thể đoán, bạn có thể có bất kỳ số mệnh đề "elif" nào. Một ví dụ với nhiều điều kiện "elif" sẽ là:

nếu [$ count == 5] sau đó echo "count là five" elif [$ count == 6] thì echo "count là sáu" elif [$ count == 7] sau đó echo "count is seven" elif [$ count = = 8] sau đó echo "count là tám" elif [$ count == 9] sau đó echo "count is nine" khác echo "none of the above" fi

Một cách nhỏ gọn hơn để viết các câu lệnh như vậy với nhiều điều kiện là phương thức case . Nó hoạt động tương tự như câu lệnh if với nhiều mệnh đề "elif" nhưng ngắn gọn hơn. Ví dụ, đoạn mã trên có thể được viết lại bằng câu lệnh "case" như sau:

trường hợp "$ count" trong 5) echo "count is five" ;; 6) echo "đếm là sáu" ;; 7) echo "đếm là bảy" ;; 8) echo "đếm là tám" ;; 9) echo "count is nine" ;; *) echo "không có gì ở trên" esac

Các câu lệnh if thường được sử dụng bên trong các vòng lặp hoặc các vòng lặp while như trong ví dụ này:

count = 1 done = 0 trong khi [$ count -le 9] làm ngủ 1 ((count ++)) nếu [$ count == 5] sau đó tiếp tục fi echo "$ count" done echo Finished

Bạn cũng có thể lồng nhau nếu câu lệnh. Đơn giản lồng nhau nếu câu lệnh có dạng: nếu ... thì ... else ... nếu ... thì ... fi ... fi. Tuy nhiên, nếu tuyên bố có thể lồng nhau với sự phức tạp tùy ý.

Xem thêm cách chuyển đối số cho một tập lệnh bash , nó cho thấy cách sử dụng các điều kiện để xử lý các tham số truyền từ dòng lệnh.

Bash shell cung cấp các cấu trúc lập trình khác, chẳng hạn như các vòng lặp for-loop , while-loop , và các biểu thức số học .