shell運算子
#!/bin/bash
# filename:day03.sh
# write time:2017-10-23
a=2b=5
#運算子之間的要有空格,$a+$b這樣是不可以的,下同
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 $a / $b`
echo
"a / b = $val"
val=`expr $a % $b`
echo
"a % b = $val"
# 在特殊字元,使用時必須要用空格隔開
if [ $a == $b ]
then
echo
"a == b"
fiif [ $a != $b ]
then
echo
"a != b"
fi
執行上面的**
leeguo@leeguo-pc
:~/nutstore/shell_code
$ bash day03.sh
a + b = 7
a - b = -3
a * b = 10
a / b = 0
a % b = 2
a != b
關係運算子只用於數字的比較。
- -eq:比較兩個數是否相等,若相等返回true
- -ne:比較兩個數是否相等,若不相等返回true
- -gt:比較兩個數的大小,若左邊的大於右邊的返回ture
- -lt:比較兩個數的大小,若右邊的大於左邊的返回ture
- -ge:比較兩個數的大小,若左邊的大於等於右邊的返回ture
- -le:比較兩個數的大小,若左邊的小於等於右邊的返回ture
舉個例子
#!/bin/bash
# filename:day03.sh
# write time:2017-10-23
a=2b=5
if [ $a
-eq$b ]
then
echo
"a == b"
fiif [ $a
-ne$b ]
then
echo
"a != b"
fiif [ $a
-gt$b ]
then
echo
"a >= b"
fiif [ $a
-lt$b ]
then
echo
"a >= b"
fi
輸出結果
a != b
a >= b
布林運算包括非,與,或運算。
- !:非運算
- -a:與運算
- -o:或運算
舉個例子
a=2
if [ $a
-lt5
-a$a
-gt1 ]
then
echo
"1else
echo
"a<=1 or a>=5"
fi
輸出
1
<5
a=2
if[[ $a -lt 5 && $a -gt 1 ]]
then
echo "1else
echo "a<=1 or a>=5"
fi
執行輸出
1
<5
舉個例子
file="test.sh"
if [ -r $file ]
then
echo
"檔案可讀"
else
echo
"檔案不可讀"
fiif [ -w $file ]
then
echo
"檔案可寫"
else
echo
"檔案不可寫"
fiif [ -x $file ]
then
echo
"檔案可執行"
else
echo
"檔案不可執行"
fiif [ -f
$file ]
then
echo
"檔案為普通檔案"
else
echo
"檔案為特殊檔案"
fiif [ -d
$file ]
then
echo
"檔案是個目錄"
else
echo
"檔案不是個目錄"
fiif [ -s
$file ]
then
echo
"檔案不為空"
else
echo
"檔案為空"
fiif [ -e
$file ]
then
echo
"檔案存在"
else
echo
"檔案不存在"
fi
輸出結果
檔案可讀
檔案可寫
檔案可執行
檔案為普通檔案
檔案不是個目錄
檔案不為空
檔案存在
本文參考: shell運算子操作 算術運算子
a 10 b 20 echo a b expr echo a b expr echo a b expr echo a b expr echo a b expr if a b then echo a等於b else echo a不等於b fiif a b then echo a不等於b else ec...
Shell筆記(運算子 關係運算子 布林運算子)
運算 語法 運 算式 表示式 表示式 表示式 expr a b 加 expr a b 減 expr a b 乘 expr a b 除 expr a b 求餘 a b 將b的值賦給a a b 判斷a是否等於b,返回結果為布林值 a b 判斷a是否不等於b,返回結果為布林值 注意 shell的字元型數值...
Shell 基本運算子 檔案測試運算子
檔案測試運算子用於檢測 unix 檔案的各種屬性。屬性檢測描述如下 操作符 說明 舉例 b file 檢測檔案是否是塊裝置檔案,如果是,則返回 true。b file 返回 false。c file 檢測檔案是否是字元裝置檔案,如果是,則返回 true。c file 返回 false。d file ...