Toán tử trong Shell Script

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

hàm trong shell

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

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em