算術運算符
#!/bin/bash
a=20
b=10
echo "兩數之和爲:`expr $a + $b`";
echo "兩數之差爲:`expr $a - $b`";
echo "兩數之積爲:`expr $a \* $b`";
echo "兩數之商爲:`expr $a / $b`";
echo "兩數之餘爲:`expr $a % $b`";
if [ $a == $b ]
then
echo "a 等於 b"
fi
if [ $a != $b ]
then
echo "a 不等於 b"
fi
輸出爲:
兩數之和爲:30
兩數之差爲:10
兩數之積爲:200
兩數之商爲:2
兩數之餘爲:0
a 不等於 b
關係運算符
a=10 b=20
運算符 |
說明 |
舉例 |
-eq |
檢測兩個數是否相等,相等返回 true |
[ a−eq b ] 返回 false |
-ne |
檢測兩個數是否相等,不相等返回 true |
[ a−ne b ] 返回 true |
-gt |
檢測左邊的數是否大於右邊的,如果是,則返回 true |
[ a−gt b ] 返回 false |
-lt |
檢測左邊的數是否小於右邊的,如果是,則返回 true |
[ a−lt b ] 返回 true |
-ge |
檢測左邊的數是否大於等於右邊的,如果是,則返回 true |
[ a−ge b ] 返回 false |
-le |
檢測左邊的數是否小於等於右邊的,如果是,則返回 true |
[ a−le b ] 返回 true |
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "$a -eq $b : a 等於 b"
else
echo "$a -eq $b: a 不等於 b"
fi
if [ $a -ne $b ]
then
echo "$a -ne $b: a 不等於 b"
else
echo "$a -ne $b : a 等於 b"
fi
if [ $a -gt $b ]
then
echo "$a -gt $b: a 大於 b"
else
echo "$a -gt $b: a 不大於 b"
fi
if [ $a -lt $b ]
then
echo "$a -lt $b: a 小於 b"
else
echo "$a -lt $b: a 不小於 b"
fi
if [ $a -ge $b ]
then
echo "$a -ge $b: a 大於或等於 b"
else
echo "$a -ge $b: a 小於 b"
fi
if [ $a -le $b ]
then
echo "$a -le $b: a 小於或等於 b"
else
echo "$a -le $b: a 大於 b"
fi
輸出:
10 -eq 20: a 不等於 b
10 -ne 20: a 不等於 b
10 -gt 20: a 不大於 b
10 -lt 20: a 小於 b
10 -ge 20: a 小於 b
10 -le 20: a 小於或等於 b
布爾運算符
運算符 |
說明 |
舉例 |
! |
非運算,表達式爲 true 則返回 false,否則返回 true |
[ ! false ] 返回 true |
-o |
或運算,有一個表達式爲 true 則返回 true |
[ a−lt20−o b -gt 100 ] 返回 true |
-a |
與運算,兩個表達式都爲 true 才返回 true |
[ a−lt20−a b -gt 100 ] 返回 false |
邏輯運算符
運算符 |
說明 |
舉例 |
&& |
邏輯的 AND |
[[ a -lt 100 && b -gt 100 ]] 返回 false |
|| |
邏輯的 OR |
[[ a−lt100|| b -gt 100 ]] 返回 true |
字符串運算符
運算符 |
說明 |
舉例 |
= |
檢測兩個字符串是否相等,相等返回 true |
[ a= b ] 返回 false |
!= |
檢測兩個字符串是否相等,不相等返回 true |
[ a!= b ] 返回 true |
-z |
檢測字符串長度是否爲0,爲0返回 true |
[ -z $a ] 返回 false |
-n |
檢測字符串長度是否爲0,不爲0返回 true |
[ -n $a ] 返回 true |
str |
檢測字符串是否爲空,不爲空返回 true |
[ $a ] 返回 true |
文件測試運算符
其中file=”/var/www/runoob/test.sh”
操作符 |
說明 |
舉例 |
-b file |
檢測文件是否是塊設備文件,如果是,則返回 true |
[ -b $file ] 返回 false |
-c file |
檢測文件是否是字符設備文件,如果是,則返回 true |
[ -c $file ] 返回 false |
-d file |
檢測文件是否是目錄,如果是,則返回 true |
[ -d $file ] 返回 false |
-f file |
檢測文件是否是普通文件(既不是目錄,也不是設備文件),如果是,則返回 true |
[ -f $file ] 返回 true |
-g file |
檢測文件是否設置了 SGID 位,如果是,則返回 true |
[ -g $file ] 返回 false |
-k file |
檢測文件是否設置了粘着位(Sticky Bit),如果是,則返回 true |
[ -k $file ] 返回 false |
-p file |
檢測文件是否是有名管道,如果是,則返回 true |
[ -p $file ] 返回 false |
-u file |
檢測文件是否設置了 SUID 位,如果是,則返回 true |
[ -u $file ] 返回 false |
-r file |
檢測文件是否可讀,如果是,則返回 true |
[ -r $file ] 返回 true |
-w file |
檢測文件是否可寫,如果是,則返回 true |
[ -w $file ] 返回 true |
-x file |
檢測文件是否可執行,如果是,則返回 true |
[ -x $file ] 返回 true |
-s file |
檢測文件是否爲空(文件大小是否大於0),不爲空返回 true |
[ -s $file ] 返回 true |
-e file |
檢測文件(包括目錄)是否存在,如果是,則返回 true |
[ -e $file ] 返回 true |