4 Làm quen với hệ thống tập tin ext3fs
5.8.1 Toán tử if và test (hoặc [])
Cấu trúc của toán tử điều kiện có dạngthu gọnnhư sau:
iflist1 thenlist2elselist3fi
trong đó, list1, list2, và list3 là các chuỗi câu lệnh, phân cách nhau bởi dấu 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ừlist1. 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ệnhcuố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ừlist2; còn nếu giá trị này khác không, thì sẽ thực hiện những lệnh từ list3. Giá trị được trả lại bởi toán tử if như vậy, trùng với giá trị mà chuỗi lệnh thực hiện (list2hoặclist3) đưa ra. Dạng
đầy đủcủa lệnh ifnhư sau:
iflist thenlist [eliflistthenlist ] ... [else list ]fi
(ở đâ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 sauifhayelif thường là câu lệnh
test, mà có thể được biểu thị bởi dấu ngoặc vuông [ ]. Lệnh test 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ìnhtest như một tham số của chương trình. Thay vì gõ test expression có thể đưa biểu thức
expressionvào ngoặc vuông:[ expression ]
Cần chú ý rằng,testvà [đó 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ỏ bash (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
testtrong cấu trúcifcó 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ụngif:
if [ -x /usr/bin/unicode_start ] ; then unicode_start
else
echo "hello world" fi
Về toán tửtest(hay[...]) cần đi sâu hơn.