4 Làm quen với hệ thống tập tin ext3fs
5.8 Shel l một ngơn ngữ lập trình
5.8.1 Toán tử if và test (hoặc [])
Cấu trúc của tố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. Ngồ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 vng chỉ có nghĩa là, những gì nằm trong nó, ngoặc vng, 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 vng [ ]. 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 vng:[ 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.