在剛開始學習inux shell腳本編程時候,對於它的 四則運算以及邏輯運算。估計不少朋友都感受比較難以接受。特變邏輯運算符」[]」使用時候,必須保證運算符與算數 之間有空格。 四則運算也只能藉助:let,expr等命令完成。 今天講的雙括號」(())」結構語句,就是對shell中算數及賦值運算的擴展。c++
使用方法:shell
語法:編程
((表達式1,表達式2…))學習
特色:測試
一、在雙括號結構中,全部表達式能夠像c語言同樣,如:a++,b--等。spa
二、在雙括號結構中,全部變量能夠不加入:「$」符號前綴。code
三、雙括號能夠進行邏輯運算,四則運算ci
四、雙括號結構 擴展了for,while,if條件測試運算table
五、支持多個表達式運算,各個表達式之間用「,」分開test
使用實例:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
a=1;
b=2;
c=3;
((a=a+1));
echo
$a;
a=$((a+1,b++,c++));
echo
$a,$b,$c
運行結果:
sh testsh.sh
2
3,3,4雙括號結構之間支持多個表達式,而後加減乘除等c語言經常使用運算符都支持。若是雙括號帶:$,將得到表達式值,賦值給左邊變量。
1
2
3
4
5
6
7
8
9
10
#!/bin/sh
a=1;
b=
"ab"
;
echo
$((a>1?8:9));
((b!=
"a"
))&&
echo
"err2"
;
((a<2))&&
echo
"ok"
;
運行結果:
sh testsh.sh
9
err2
ok
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
num=100;
total=0;
for
((i=0;i<=num;i++));
do
((total+=i));
done
echo
$total;
total=0;
i=0;
while
((i<=num));
do
((total+=i,i++));
done
echo
$total;
if
((total>=5050));
then
echo
"ok"
;
fi
運算結果:
sh testsh.sh 5050 5050 ok