Trong shell script, toán tử đóng vai trò quan trọng trong việc thực hiện các phép tính và so sánh. Chúng cho phép chúng ta thực hiện các thao tác logic, kiểm tra điều kiện,… Dưới đây là một số toán tử trong shell script.
Xem thêm:
vòng lặp trong shell script và cấu trúc rẽ nhánh if, select
1. Các phép toán số học
Để thực hiện các phép tính toán số học cần dùng câu lệnh:
expr biểu_thức_số_học
Các toán tử: +, -, \*, /, %
Ví dụ:
expr 1 + 3 expr 2 - 1 expr 10 / 2 expr 20 % 3 expr 10 \* 3 # phép nhân là \* . echo `expr 6 + 3` # đánh giá giá trị biểu thức 6+3 và in ra.
2. Các dấu ngoặc
Dấu ngoặc kép “ ”: tất cả các ký tự trong dấu ngoặc kép đều không có ý nghĩa tính toán, trừ những ký tự sau \ hoặc $.
Dấu nháy ngược` (cùng nút với dấu ~): yêu cầu thực hiện lệnh.
Ví dụ:
$ echo “Today is `date`” Today is Tue Jan ...
3. Các phép so sánh số
Toán tử so sánh trong Shell Script | Nghĩa | Toán tử bình thường | Câu lệnh trong Shell Script | |
For test | For [ expr ] | |||
-eq | is equal to | 5 == 6 | if test 6 -eq 6 | if [ 5 -eq 6 ] |
-ne | is not equal to | 5 != 6 | id test 5 -ne 6 | if [ 5 -ne 6 ] |
-lt | is less than | 5 < 6 | if test 5 -lt 6 | if [ 5 -lt 6 ] |
-le | is less than or equal to | 5<=6 | if test 5 -le 6 | if [ 5 -le 6 ] |
-gt | is greater | 5>6 | if test 5 -gt 6 | if [ 5 -gt 6 ] |
-ge | is greater than or equal to | 5>=6 | if test 5 -ge 6 | if [ 5 -ge 6 ] |
So sánh các số:
num1 -eq num2: True nếu num1 bằng num2.
num1 -ne num2: True nếu num1 khác num2.
num1 -lt num2: True nếu num1 nhỏ hơn num2.
num1 -le num2: True nếu num1 nhỏ hơn hoặc bằng num2.
num1 -gt num2: True nếu num1 lớn hơn num2.
num1 -ge num2: True nếu num1 lớn hơn hoặc bằng num2.
4. Các phép so sánh xâu
Toán tử | Nghĩa |
string1 = string2 | string1 is equal to string2 |
string 1 != string2 | string1 is not equal to string 2 |
string1 | string1 is NOT NULL or not defined |
-n string1 | string1 is NOT NULL and does exist |
-z string1 | string1 is NULL and does exist |
5. Các phép kiểm tra file, thư mục
Test | Meaning |
-s file | Non empty file |
-f file | Is file exist or normal file and not a directory |
-d dir | Is directory exist and not a file |
-w file | Is writeable file |
-r file | Is read-only file |
-x file | Is file is executable |
Kiểm tra Tệp: Kiểm tra các thuộc tính khác nhau của tệp:
-d filename: True nếu filename là một thư mục.
-e filename: True nếu filename tồn tại (bất kỳ loại nào).
-f filename: True nếu filename tồn tại và là một tệp thông thường (không phải thư mục, symlink, v.v.).
-r filename: True nếu filename có thể đọc được bởi người dùng hiện tại.
-s filename: True nếu filename tồn tại và có kích thước lớn hơn 0 (không trống).
-w filename: True nếu filename có thể ghi bởi người dùng hiện tại.
-x filename: True nếu filename có thể thực thi bởi người dùng hiện tại.
Kiểm tra Chuỗi: So sánh các chuỗi:
-z string: True nếu string trống.
-n string: True nếu string không trống.
string1 = string2: True nếu string1 bằng string2.
string1 != string2: True nếu string1 khác string2.
6. Phép toán logic
Các phép toán logic:
NOT: !
! Biểu_thức
AND: -a
Biểu_thức_1 –a biểu_thức_2
OR: -r
Biểu thức_1 –r biểu_thức_2
7. Lệnh test
Lệnh test được dùng để kiểm tra một biểu thức là đúng hay không và trả lại 0 nếu biểu thức đúng <>0, trường hợp còn lại
Cú pháp:
test biểu_thức [ biểu thức ]
Biểu thức có thể bao gồm:
- Số nguyên
- Các kiểu tệp
- Xâu ký tự
Trên đây là một số toán tử căn bản trong shell script. Với kiến thức này, bạn có thể thực hiện các phép tính, so sánh và kiểm tra trạng thái của các tệp tin và thư mục để thực hiện các tác vụ phức tạp. Cảm ơn bạn đã tham khảo quản trị linux trên ttnguyen.net.
Bài viết liên quan:
viết chương trình Hello World Shell Script
cách khai báo biến trong Shell Script