TỰ HỌC SỬ DỤNG LINUX - Trang 126

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

117

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ạng thu gọn như sau:

if

list1 then list2 else list3 fi

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ệ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ừ 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 (list2 hoặc list3) đưa ra. Dạng
đầy đủ của lệnh if như sau:

if

list then list [ elif list then list ] ... [ 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 sau if hay elif 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ình test như một
tham số của chương trình. Thay vì gõ test expression có thể đưa biểu thức
expression

vào ngoặc vuông: [ expression ]

Cần chú ý rằng, test 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ỏ 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
test

trong cấu trúc if 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 if:

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.

5.8.2

Toán tử test và điều kiện của biểu thức

Biểu thức điều kiện, sử dụng trong toán tử test, được xây dựng trên cơ sở

kiểm

tra thuộc tính tập tin, so sánh các dòng các so sánh số học thông thường. Biểu
thức phức tạp hơn được tạo ra từ các thao tác đơn và kép sau (“những viên gạch
cơ sở”):

ˆ -a file

Đúng nếu tập tin có tên file tồn tại.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.