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

Một phần của tài liệu Tự học sử dụng Linux (Trang 126 - 129)

4 Làm quen với hệ thống tập tin ext3fs

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òngcá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

ˆ -b file

Đúng nếu file tồn tại, và là một tập tin thiết bị khối (block device) đặc biệt.

ˆ -c file

Đúng nếufiletồn tại, và là một tập tin thiết bị ký tự (charater device) đặc biệt.

ˆ -d file

Đúng nếu filetồn tại và là một thư mục.

ˆ -e file

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

ˆ -f file

Đúng nếu tập tin có tênfile tồn tại và là một tập tin thông thường.

ˆ -g file

Đúng nếu tập tin có tênfile tồn tại và được đặtbit thay đổi nhóm.

ˆ -h filehay-L file

Đúng nếu tập tin có tên file tồn tại và là liên kết mềm (liên kết tượng trưng).

ˆ -k file

Đúng nếu tập tin có tênfile tồn tại và được đặtbit sticky.

ˆ -p file

Đúng nếu tập tin có tênfile tồn tại và là tên của một ống (kênh FIFO).

ˆ -p file

Đúng nếu tập tin có tênfile tồn tại và là tên của một ống (kênh FIFO).

ˆ -r file

Đúng nếu tập tin có tênfile tồn tại và có quyền đọc.

ˆ -s file

Đúng nếu tập tin có tênfile tồn tại và kích thước lớn hơn không.

ˆ -t fd

Đúng nếu bộ mô tả của tập tin (fd) mở và chỉ lên terminal.

ˆ -u file

Đúng nếu tập tin có tênfile tồn tại và được đặtbit thay đổi người dùng.

ˆ -w file

Đúng nếu tập tin có tênfile tồn tại và có quyền ghi.

ˆ -x file

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

ˆ -0 file

Đúng, nếu tập tin có tên file và chủ sở hữu của nó là người dùng mà ID có hiệu lực chỉ đến.

ˆ -G file

Đúng, nếu tập tin có tên file tồn tại và thuộc về nhóm, xác định bởi ID nhóm có hiệu lực.

ˆ -S file

Đúng, nếu tập tin có tênfile tồn tại và là socket.

ˆ -N file

Đúng, nếu tập tin có tênfiletồn tại và thay đổi từ lần được đọc cuối cùng.

ˆ file1 -nt file2

Đúng, nếu tập tin file1cóthời gian sửa đổimuộn hơnfile2.

ˆ file1 -ot file2

Đúng, nếu tập tinfile1“già” hơnfile1(trường hợp ngược lại của trường hợp trên).

ˆ file1 -ef file2

Đúng, nếu tập tin file1 và file2 có cùng một số thiết bị và chỉ số mô tả inode.

ˆ -o optname

Đúng, nếu tùy chọn optname của hệ vỏ được kích hoạt. Chi tiết xin xem trên trang man bash.

ˆ -z string

Đúng, nếu độ dài của chuỗistringbằng không.

ˆ -n string

Đúng, nếu độ dài của chuỗi khác không.

ˆ string1 == string2

Đúng, nếu hai chuỗi trùng nhau. Có thể thay hai==bằng một=.

ˆ string1 !== string2

Đúng, nếu hai chuỗi không trùng nhau.

ˆ string1 < string2

Đúng, nếu chuỗistring1, theo từ điển, đứng trước chuỗistring2(đối với ngôn ngữ hiện thời).

ˆ string1 > string2

Đúng, nếu chuỗi string1, theo từ điển, đứng sau chuỗi string2(đối với ngôn ngữ hiện thời).

ˆ arg1 OP arg2

Ở đây OP là một trong các phép so sánh số học: -eq (bằng), -ne (khác, không bằng), -lt (nhỏ hơn), -le (nhỏ hơn hoặc bằng), -gt (lớn hơn),-ge

(lớn hơn hoặc bằng). Ở chỗ các tham số arg1 và arg2 có thể sử dụng các số nguyên (âm hoặc dương).

Từ các biểu thức điều kiện cơ bản này có thể xây dựng các biểu thức phức tạp theo ý muốn nhờ các phép lôgíc thông thường PHỦ ĐỊNH, VÀ (cộng) và HOẶC:

ˆ !(expression)

Phép phủ định. Đúng, nếu biểu thứcsai.

ˆ expression1 -a expression2

Phép cộng lôgicAND. Đúng nếucả haibiểu thức đều đúng.

ˆ expression1 -o expression2

Phép lôgíc hoặcOR. Đúng nếumột trong haibiểu thức đúng.

Một phần của tài liệu Tự học sử dụng Linux (Trang 126 - 129)