Toàn tử if và test (hoặc [ ])

Một phần của tài liệu Giáo an Bài giảng: Công nghệ thông tin về cài đặt HDH Linux và windows trên cùng một máy tính (Trang 40 - 41)

40 Bash • /usr/ucb/edit

3.8.1Toàn tử if và test (hoặc [ ])

Cấu trúc của toán tử điều kiện có dạng thu gọn như sau: i f listl t h e n list2 e l s e list3 f i trong đó, l i s t l , l i s t 2 , và l i s t 3 là các chuỗi câu lệnh, phân cách nhau bời dấu

3.8 Shell - một ngôn ngữ lập trình 43

phảy và kết thúc bời một dấu chấm phẩy hay ký tự dòng mới. Ngoài ra, các chuỗi này có thể được đưa vào dấu ngoặc nhọn: list. Toán tử if kiểm tra giá trị được trả lại bời các câu lệnh từ l i s t 1. Nếu trong danh sách có vài câu lệnh, thì kiểm tra giá trị được trả lại bởi câu lệnh cuối cùng của danh sách. Nếu giá trị này bằng 0, thì sẽ thực hiện các lệnh từ l i s t 2; còn nếu giá trị này khác không, thì sẽ thực hiện những lệnh từ l i s t 3. Giá trị được trà lại bởi toán tử i f như vậy, trùng với giá trị mà chuỗi lệnh thực hiện ( l i s t 2 hoặc l i s t 3) đưa ra. Dạng đầy đủ của lệnh i f như sau:

i f list th e n list [ e l i f list th e n list ] ... [ e l s e list ] f i

(ờ đây dấu ngoặc vuông chỉ có nghĩa là, những gì nằm trong nó, ngoặc vuông, không nhất thiết phải có). Biểu thức đứng sau i f hay e l i f thường là câu lệnh t e s t , mà có thể được biểu thị bởi dấu ngoặc vuông [ ]. Lệnh t e s t thực hiện phép tính một biểu thức nào đó, và trả lại giá trị 0, nếu biểu thức là đúng, và 1 trong trường hợp ngược lại. Biểu thức được đưa tới chương trình t e s t như một tham số của chưđng trình. Thay vì gõ

t e s t e x p r e s s i o n

có thể đưa biểu thức e x p r e s s i o n vào ngoặc vuông: [ e x p r e s s i o n ]

Cần chú ý rằng, t e s t và [ đó là hai tên của của cùng một chương trình, chứ không phải là một phép biến hóa thần thông nào đó của hệ vỏ b a s h (chỉ là cú pháp của [ đòi hòi phải có dấu đóng ngoặc). Và cũng cần chú ý rằng ờ chỗ của t e s t trong cấu trúc i f có thể sử dụng bất kỳ chương trình nào. Đê’ kết thúc mục này, chúng ta đưa ra ví dụ sử dụng i f :

--- kênh giao tác --- if [ -X /usr/bỉn/unicode_start ] ; then

u n i c o d e _ s t a r t e l s e

echo "hello world"

f i

Về toán tử t e s t (hay [ . . . ] ) cần đi sâu hơn.

Một phần của tài liệu Giáo an Bài giảng: Công nghệ thông tin về cài đặt HDH Linux và windows trên cùng một máy tính (Trang 40 - 41)