1、shell運算子
1.1、算數運算子
原生的bash不支援算數運算,可以通過其它方式實現例如expr。
1 `expr a +b`示例如下:2#a b為數字,和運算子之間要有空格
3 #``不是單引號,為鍵盤上esc鍵下方的反引號
1 #!/bin/shview code23 a=4
4 b=3
5#加法
6 val=`expr $ +$`
7echo
"$ + $ is :$"8
9#減法
10 val=`expr $ -$`
11echo
"$ - $ is :$"12
13#乘法
14 val=`expr $ \*$`
15echo
"$ * $ is :$"16
17#除法
18 val=`expr $ /$`
19echo
"$ / $ is :$"20
21#取餘
22 val=`expr $ %$`
23echo
"$ % $ is :$
"
輸出:
4 + 3 is :71.2、關係運算子4 - 3 is :1
4 * 3 is :12
4 / 3 is :1
4 % 3 is :1
關係運算子只支援數字,常見的關係運算子如下:
1 c=3輸出如下:2 d=3
3#等於
4if [ $ -eq $ ]
5then
6echo
"$ is equal to $"7
fi8#不等於
9 d=2
10if [ $ -gt $ ]
11then
12echo
"$ is great than $"13
fi# -eq 等於,[ $ -ne $ ]返回true
# -gt 檢測左邊數是否大於右邊,如果是,則返回true,反之,返回false
# -lt 檢測左邊數是否小於右邊,如果是,則返回true,反之,返回false
# -ge 檢測左邊數是否大於等於右邊,如果是,則返回true,反之,返回false
# -le 檢測左邊數是否小於等於右邊,如果是,則返回true,反之,返回false
3 is equal to 31.3、布林運算子3 is great than 2
1#非運算!,表示式為true,則返回false
2#與運算-o,有乙個表示式為true則返回true
3 #或運算-a,兩個表示式為true則返回true
1 c=1輸出如下:2 d=2
3 e=3
4if [ $ -ne $ -o $ -eq $ ]
5then
6echo
"$ 不等於 $ 或者 $ 等於 $ ,返回true。"7
fi
1 不等於 2 或者 2 等於 3 ,返回true。1.4、邏輯運算子
1 #&&邏輯and2 #|| 邏輯or
1 c=12 d=2
3 e=3
4if [ $ -ne $ and $ -eq $ ]
5then
6echo
"$ 不等於 $ 並且 $ 等於 $ ,返回true。"7
else
8echo
"$ 不等於 $ 或者 $ 等於 $ ,返回true。"9
fi
1 不等於 2 或者 2 等於 3 ,返回true。1.5、字串運算子
1 # =,檢測兩個字串是否相等,相等則返回true示例如下:# !=,檢測兩個字串是否不等,不等則返回true
# -z,檢測字串是否為零,為零返回true
# -n,檢測字串是否不為零,為零返回false
# $ ,檢測字串是否為空,不為空返回true
1 a="輸出如下:hello
"2 b="
hello"3
if [ $ =$ ]
4then
5echo
"str $ is equal to $"6
fi78if [ -n $ ]
9then
10echo
"str $ is not zero.
"
str hello is equal to hello1.6、檔案檢測運算子str hello is not zero.
1 #-w $ 檢測檔案是否可寫,可寫則返回true輸出如下:2 #-r $ 檢測檔案是否可讀,可寫則返回true
3 #-x $ 檢測檔案是否可執行,可執行則返回true
4 #-s $ 檢測檔案是否為空,不為空則返回true
5 #-e $ 檢測檔案或目錄是否存在,存在則返回true
6 #檔案檢測運算子比較多,此時不一一枚舉
curr_path=`pwd`
if [ -e $ ]
then
echo "dir $ is exist."
fi
dir /home/stephen/桌面 is exist.2、shell流程控制
2.1、if
#!/bin/bash示例如下:#假如 條件1成立,則執行語句1
#假如 條件1不成立,條件2成立,則執行語句2
#假如 條件1,2不成立,則執行語句3
if條件1
then
語句1elif
條件2then
語句2else
語句3
1 age=15輸出如下:2if [ $ -lt 16]3
then
4echo
"age is $, yonng"5
elif [ $ 40]6
then
7echo
"age is $,midlife"8
else
9echo
"age is $,old"10
fi
age is 15, yonng2.2、for迴圈
1 data_path=(data1 data2 data3)輸出:2for datai in$3
do4echo$5
done
data1data2
data3
1輸出:for ((i=0;i<5;i++))2do
3echo$4
done
0122.3、while34
#當條件1成立,迴圈執行語句1示例如下:while
條件1do
語句1done
1 i=1輸出如下:2while [ $ -lt 4]3
do4echo
"loop $
"5 #語法 let "
表示式"
6 let i++
7 done
loop 12.4、untilloop
2loop
3
#當條件1不成立時,就執行語句1示例如下:until
條件1do
語句1done
1 j=7輸出如下:2until [ $ -lt 4]3
do4echo
"loop $
"5 let j--
6done
loop 7loop
6loop
5loop
4
陣列運算子 錯誤控制運算子與流程控制
注意 php中陣列元素的順序與下標無關,而是與加入的順序有關 v1 array 1,2,3,4 v2 array 5,6,7,8,9 r1 v1 v2 則 r1的結果為 array 1,2,3,4,9 v1 array 1,2,3,4 v2 array 2,3,1,4 v3 array 1 2,2 ...
python 運算子與流程控制
算術運算 復合運算 關係運算 比較運算 邏輯運算 判斷是否在100 200之間 print a 100 and a 200 與上式等價 print 100 a 200 判斷是否是閏年 y int input 請輸入乙個年份 print y 4 0 and y 100 0 or y 400 0 成員運...
python 運算子與流程控制
算術運算 復合運算 關係運算 比較運算 邏輯運算 判斷是否在100 200之間 print a 100 and a 200 與上式等價 print 100 a 200 判斷是否是閏年 y int input 請輸入乙個年份 print y 4 0 and y 100 0 or y 400 0 成員運...