算術運算符
#!/bin/bash
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"
val=`expr $a \* $b`
echo "a * b : $val"
val=`expr $b / $a`
echo "b / a : $val"
val=`expr $b % $a`
echo "b % a : $val"
if [ $a == $b ]
then
echo "a 等于 b"
fi
if [ $a != $b ]
then
echo "a 不等于 b"
fi
執行腳本,輸出結果如下所示
a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b
乘号(*)前邊必須加反斜杠()才能實作乘法運算;
關系運算符
關系運算符隻支援數字,不支援字元串,除非字元串的值是數字。
EQ 就是 EQUAL等于
NQ 就是 NOT EQUAL不等于
GT 就是 GREATER THAN大于
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等
#!/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
布爾運算符
#!/bin/bash
a=10
b=20
if [ $a != $b ]
then
echo "$a != $b : a 不等于 b"
else
echo "$a != $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a 小于 100 且 $b 大于 15 : 傳回 true"
else
echo "$a 小于 100 且 $b 大于 15 : 傳回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
echo "$a 小于 100 或 $b 大于 100 : 傳回 true"
else
echo "$a 小于 100 或 $b 大于 100 : 傳回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
echo "$a 小于 5 或 $b 大于 100 : 傳回 true"
else
echo "$a 小于 5 或 $b 大于 100 : 傳回 false"
fi
-------------------------------------------------------------
邏輯運算符
#!/bin/bash
a=10
b=20
if [[ $a -lt 100 && $b -gt 100 ]]
then
echo "傳回 true"
else
echo "傳回 false"
fi
if [[ $a -lt 100 || $b -gt 100 ]]
then
echo "傳回 true"
else
echo "傳回 false"
fi
字元串運算符
下表列出了常用的字元串運算符,假定變量 a 為 "abc",變量 b 為 "efg":
#!/bin/bash
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a 等于 b"
else
echo "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
then
echo "$a != $b : a 不等于 b"
else
echo "$a != $b: a 等于 b"
fi
if [ -z $a ]
then
echo "-z $a : 字元串長度為 0"
else
echo "-z $a : 字元串長度不為 0"
fi
if [ -n $a ]
then
echo "-n $a : 字元串長度不為 0"
else
echo "-n $a : 字元串長度為 0"
fi
if [ $a ]
then
echo "$a : 字元串不為空"
else
echo "$a : 字元串為空"
fi
--------------------------------------
檔案測試運算符
檔案測試運算符用于檢測 Unix 檔案的各種屬性。
屬性檢測描述如下:
#!/bin/bash
file="/var/www/itcast/test.sh"
if [ -r $file ]
then
echo "檔案可讀"
else
echo "檔案不可讀"
fi
if [ -w $file ]
then
echo "檔案可寫"
else
echo "檔案不可寫"
fi
if [ -x $file ]
then
echo "檔案可執行"
else
echo "檔案不可執行"
fi
if [ -f $file ]
then
echo "檔案為普通檔案"
else
echo "檔案為特殊檔案"
fi
if [ -d $file ]
then
echo "檔案是個目錄"
else
echo "檔案不是個目錄"
fi
if [ -s $file ]
then
echo "檔案不為空"
else
echo "檔案為空"
fi
if [ -e $file ]
then
echo "檔案存在"
else
echo "檔案不存在"
fi