shell腳本的學習2-運算符

算術運算符

#!/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 [ aeq b ] 返回 false
-ne 檢測兩個數是否相等,不相等返回 true [ ane b ] 返回 true
-gt 檢測左邊的數是否大於右邊的,如果是,則返回 true [ agt b ] 返回 false
-lt 檢測左邊的數是否小於右邊的,如果是,則返回 true [ alt b ] 返回 true
-ge 檢測左邊的數是否大於等於右邊的,如果是,則返回 true [ age b ] 返回 false
-le 檢測左邊的數是否小於等於右邊的,如果是,則返回 true [ ale 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 [ alt20o b -gt 100 ] 返回 true
-a 與運算,兩個表達式都爲 true 才返回 true [ alt20a b -gt 100 ] 返回 false

邏輯運算符

運算符 說明 舉例
&& 邏輯的 AND [[ a -lt 100 && b -gt 100 ]] 返回 false
|| 邏輯的 OR [[ alt100|| 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章