Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Các toán tử cơ bản trong Shell Scripting


Shell là giao diện mà lập trình viên có thể thực thi lệnh và tương tác trực tiếp với hệ điều hành. Shell scripting là việc đưa ra các lệnh mà shell có thể thực thi.

Trong shell cũng có biến và toán tử để thao tác các biến này. Có 5 toán tử cơ bản trong shell scripting:

  • Toán tử số học
  • Toán tử quan hệ
  • Toán tử Boolean
  • Toán tử bitwise
  • Toán tử kiểm tra file

Toán tử số học

Toán tử số học trong shell scripting dùng để thực hiện các phép toán số học/toán học chung. Có 7 toán tử số học hợp lệ:

  • Cộng (+) dùng để cộng hai toán hạng (biến).

  • Trừ (-) dùng để trừ hai biến trong shell scripting.

  • Nhân (*) dùng để nhân hai biến.

  • Chia (/) dùng để chia hai biến.

  • Modulus (%) dùng để tìm phần dư khi chia hai toán hạng.

  • Toán tử tăng (++) dùng để cộng 1 vào giá trị hiện tại.

  • Toán tử giảm (--) dùng để trừ 1 từ giá trị hiện tại.

Ví dụ

Minh họa triển khai toán tử số học trong shell scripting:

a = 32
b = 23
add = $((a + b))
echo sum of a and b is $add
sub = $((a - b))
echo Subtraction of a and b is $sub
mul = $((a * b))
echo product of a and b is $mul
div = $((a / b))
echo division of a and b is $div
mod = $((a % b))
echo remainder when a is divided b is $mod
((++a))
echo Increment operator when applied on "a" results into a = $a
((--b))
echo Decrement operator when applied on "b" results into b = $b

Kết quả

sum of a and b is 55
Subtraction of a and b is 9
product of a and b is 736
division of a and b is 1
remainder when a is divided b is 9
Increment operator when applied on a results into a = 33
Decrement operator when applied on b results into b = 24

Toán tử quan hệ

Toán tử quan hệ trong shell scripting định nghĩa quan hệ giữa các toán hạng. Giá trị trả về là true hoặc false tùy thuộc vào toán tử và toán hạng. Có 6 loại toán tử quan hệ hợp lệ:

  • Toán tử == so sánh bằng giá trị hai toán hạng. Trả về true nếu bằng, false nếu không.

  • Toán tử != kiểm tra bất đẳng thức. Trả về true nếu không bằng, false nếu bằng.

  • Toán tử < so sánh nhỏ hơn. Trả về true nếu toán hạng đầu nhỏ hơn thứ hai.

  • Toán tử <= nhỏ hơn hoặc bằng. Trả về true nếu đầu nhỏ hơn hoặc bằng thứ hai.

  • Toán tử > lớn hơn. Trả về true nếu đầu lớn hơn thứ hai.

  • Toán tử >= lớn hơn hoặc bằng. Trả về true nếu đầu lớn hơn hoặc bằng thứ hai.

Ví dụ

a = 32
b = 67
if(( $a==$b )) then
    echo a is equal to b.
else
    echo a is not equal to b.
fi
if(( $a!=$b )) then
    echo a is not equal to b.
else
    echo a is equal to b.
fi
if(( $a<$b )) then
    echo a is less than b.
else
    echo a is not less than b.
fi
if(( $a<=$b )) then
    echo a is less than or equal to b.
else
    echo a is not less than or equal to b.
fi
if(( $a>$b )) then
    echo a is greater than b.
else
    echo a is not greater than b.
fi
if(( $a>=$b )) then
    echo a is greater than or equal to b.
else
    echo a is not greater than or equal to b.
fi

Kết quả

a is not equal to b.
a is not equal to b.
a is less than b.
a is less than or equal to b.
a is not greater than b.
a is not greater than or equal to b.

Toán tử Boolean

Toán tử Boolean hay toán tử logic dùng để thực hiện phép logic trong shell scripting. Có 3 loại toán tử logic hợp lệ:

  • AND logic (&&) tính AND logic của giá trị boolean. Trả về true nếu cả hai true, ngược lại false.

  • OR logic (||) tính OR logic. Trả về false nếu cả hai false, ngược lại true.

  • NOT logic (!) tính phủ định của toán hạng đơn. Nếu giá trị true trả về false, ngược lại true.

Ví dụ

a = true
b = false
if(($a == "true" & $b == "true" )) then
    echo Both are true.
else
    echo Both are not true.
fi
if(($a == "true" || $b == "true" )) then
    echo Atleast one of them is true.
else
    echo None of them is true.
fi
if(( ! $a == "true" )) then
    echo "a" was intially false.
else
    echo "a" was intially true.
fi

Kết quả

Both are not true.
Atleast one of them is true
a was intially true.

Toán tử bitwise là các toán tử thực hiện thao tác bitwise trên biến bit. Có 6 loại:

  • Bitwise AND (&) thực hiện AND nhị phân trên các bit của toán hạng.

  • Bitwise OR (|) thực hiện OR nhị phân.

  • Bitwise XOR (^) thực hiện XOR nhị phân.

  • Bitwise complement (~) thực hiện NOT nhị phân.

  • Bitwise Left Shift (<<) dịch bit sang trái n lần.

  • Bitwise Right Shift (>>) dịch bit sang phải n lần.

Ví dụ

a = 14
b = 67
bitwiseAND=$(( a&b ))
echo Bitwise AND of a and b is $bitwiseAND
bitwiseOR=$(( a|b ))
echo Bitwise OR of a and b is $bitwiseOR
bitwiseXOR=$(( a^b ))
echo Bitwise XOR of a and b is $bitwiseXOR
bitiwiseComplement=$(( ~a ))
echo Bitwise Compliment of a is $bitiwiseComplement
leftshift=$(( a<<1 ))
echo Left Shift of a is $leftshift
rightshift=$(( b>>1 ))
echo Right Shift of b is $rightshift

Kết quả

Bitwise AND of a and b is 2
Bitwise OR of a and b is 79
Bitwise XOR of a and b is 77
Bitwise Compliment of a is -15
Left Shift of a is 28
Right Shift of b is 33

Toán tử kiểm tra file

Toán tử kiểm tra file dùng để kiểm tra các thuộc tính đặc biệt của file. Một số toán tử:

  • -b kiểm tra file là block special file. Trả về true nếu đúng.

  • -s kiểm tra kích thước file > 0. Trả về true nếu đúng.

  • -r kiểm tra quyền đọc file. Trả về true nếu được cấp.

  • -w kiểm tra quyền ghi file. Trả về true nếu được cấp.

  • -x kiểm tra quyền thực thi file. Trả về true nếu được cấp.