Sử dụng câu lệnh if… else trong Bash để thực thi mã có điều kiện.
Bash (Bourne Again Shell) là một lời nhắc lệnh shell và ngôn ngữ kịch bản trong hệ điều hành GNU / Linux. Nó là trình bao mặc định cho hầu hết các bản phân phối Linux.
Các câu lệnh điều kiện rất quan trọng trong bất kỳ ngôn ngữ lập trình nào, được biên dịch cũng như tập lệnh. Họ cho phép người dùng thực thi một đoạn mã dựa trên một điều kiện được xác định trước, đây là một trong những nền tảng của logic lập trình. Trong bài viết này, chúng ta sẽ học cách sử dụng nếu khác
câu lệnh điều kiện trong Bash.
Giới thiệu
Các nếu khác
câu lệnh trong Bash cho phép người dùng thao tác dòng mã dựa trên các điều kiện. Người dùng có thể chỉ định các khối mã riêng biệt sẽ được thực thi, chỉ một trong số đó cuối cùng sẽ được thực thi trong thời gian chạy, dựa trên điều kiện tương ứng được thỏa mãn.
Lưu ý rằng, nhiều hơn hai điều kiện có thể được chỉ định, mà elif
câu lệnh có thể được sử dụng. Người dùng có thể đưa ra bất kỳ số điều kiện nào bằng cách sử dụng elif
và cuối cùng là một điều kiện mặc định bằng cách sử dụng khác
khối. Hãy xem thêm về điều này trong cú pháp và ví dụ bên dưới.
Cú pháp chung
Cú pháp chung cho nếu khác
tuyên bố trong Bash là:
nếu sau đó khác fi
Đây, nếu thỏa mãn, tức là nếu nó trả về 0 (thành công), thì khối mã 1 được thực thi. Nếu điều kiện không trả về 0, tức là nó trả về trạng thái thất bại, thì khối mã 2 được thực thi. Các
nếu khác
khối kết thúc bằng một fi
bản tường trình.
Đối với nhiều khối tương ứng với nhiều điều kiện,elif
Được sử dụng:
nếu sau đó elif sau đó elif sau đó ... ... khác fi
Tại đây, các điều kiện được kiểm tra theo thứ tự và khối mã của điều kiện đầu tiên trả về trạng thái 0 (thành công) được thực thi. Ví dụ. nếu như Nếu không có điều kiện nào trả về trạng thái 0, Lưu ý rằng Để thực thi một khối mã nếu một biến có giá trị cụ thể: Để kiểm tra nhiều giá trị: Các điều kiện có thể là bất kỳ lệnh Linux nào. Khối mã tương ứng sẽ thực thi nếu lệnh chạy thành công. Trong ví dụ trên, kể từ Chúng ta cũng có thể lồng một cái khác Điều này rất hữu ích khi một tập hợp các điều kiện riêng biệt sẽ được kiểm tra sau khi một điều kiện ban đầu được thỏa mãn. Ví dụ: mã sau cố gắng cài đặt phần mềm máy chủ web: Đầu tiên, mã sẽ kiểm tra xem Nginx đã được cài đặt trong hệ thống hay chưa. Nếu có, nó chỉ hiển thị một thông báo và thoát ra. Nếu không, nó sẽ cố gắng cài đặt Nginx. Nếu vì lý do nào đó, không thể cài đặt Nginx trong hệ thống từ gói, nó sẽ thử cài đặt Apache2. Nếu ngay cả Apache2 gặp lỗi trong khi cài đặt, nó sẽ thoát ra hiển thị thông báo rằng không thể cài đặt phần mềm. Theo cách tương tự, một khối lồng nhau có thể được sử dụng bên trong một Tương tự với bất kỳ mã Bash nào, Người dùng cũng có thể lưu mã này trong một tệp script và thực thi tệp script. Các Để cấp quyền thực thi cho tệp này, hãy chạy: Cuối cùng, để thực thi tệp, hãy chạy: Tương tự như bất kỳ ngôn ngữ lập trình nào, trả về trạng thái khác 0 (thất bại), sau đó
được kiểm tra. Nếu như
trả về trạng thái 0,
được thực thi. Sau đó, các điều kiện khác không được kiểm tra và quá trình thực thi mã tiếp tục đối với mã sau
fi
bản tường trình. trong khối khác được thực thi. Lưu ý rằng khối khác là tùy chọn. Nếu không có điều kiện nào được thỏa mãn, cũng như không
khác
khối được chỉ định, không có khối mã điều kiện nào sẽ chạy và quá trình thực thi mã sẽ tiếp tục đối với mã sau fi
, như được hiển thị trong sơ đồ bên dưới.sau đó
câu lệnh chỉ được sử dụng sau nếu như
và elif
câu lệnh và không bắt buộc sau khác
bản tường trình.Các ví dụ
x = 0 if [$ x -eq 0] then echo "Giá trị của X là 0" else echo "Giá trị của X không phải là 0" fi
x = 2 if [$ x -eq 0] then echo "Giá trị của X là 0" elif [$ x -eq 1] then echo "Giá trị của X là 1" elif [$ x -eq 2] then echo "Giá trị của X là 2 "else echo" Giá trị của X không phải là 0 "fi
if npm -v then echo "NPM present in system" else sudo apt install npm fi
npm
không được cài đặt trong hệ thống, lệnh npm -v
trả về trạng thái khác 0. Do đó, việc thực thi mã đã đi vào khác
khối, nơi chúng tôi cài đặt npm bằng cách sử dụng đúng cách
quản lý gói hàng. Như chúng ta có thể thấy, nó đã nhắc tôi nhập mật khẩu và bắt đầu cài đặt npm.nếu khác
khối bên trong một nếu như
, khác
hoặc là elif
khối:x = 0 y = 1 if [$ x -eq 0] then echo "X is 0" if [$ y -eq 1] then echo "Y is 1" else echo "Y không phải là 1" fi else echo "X là không phải 0 "fi
if nginx -v then echo "NGINX đã được cài đặt." else if sudo apt install nginx then echo "Cài đặt NGINX thành công." elif sudo apt install apache2 rồi echo "Cài đặt APACHE2 thành công." else echo "Không thể cài đặt bất kỳ phần mềm web nào." fi
elif
khối cũng như vậy.Đang thực thi
nếu khác
: Tập lệnh và Dòng lệnhnếu khác
câu lệnh có thể được sử dụng trong Bash shell trực tiếp hoặc từ một tệp script shell thực thi. Sau khi trình thông dịch Bash tìm thấy nếu như
, khác
hoặc là elif
, nó tiếp tục trình bao để cho phép người dùng nhập khối mã.#! / bin / bash
lúc bắt đầu chỉ định trình thông dịch sẽ được sử dụng khi tệp được thực thi. Mặc dù Bash là trình bao được sử dụng phổ biến nhất hiện nay, nhưng một số người dùng thích các trình bao như zsh, nên được chỉ định thay cho bash ở đầu tệp này.chmod + x test.sh
./test.sh
Sự kết luận
nếu khác
tuyên bố là một tính năng cơ bản của Bash. Học cách sử dụng nó sẽ giúp bạn viết được các script cơ bản cũng như nâng cao một cách lâu dài.