書寫優雅的shell指令碼(五)- shell中(())雙括弧運算子

來源:互聯網
上載者:User

標籤:

在使用shell的邏輯運算子”[]”使用時候,必須保證運算子與算數之間有空格。 四則運算也只能藉助:let,expr等命令完成。 今天講的雙括弧”(())”結構語句,就是對shell中算數及賦值運算的擴充。 

1.文法: 
((運算式1,運算式2…)) 

2.特點: 
(1)在雙括弧結構中,所有運算式可以像c語言一樣,如:a++,b--等。 
(2)在雙括弧結構中,所有變數可以不加入:“$”符號首碼。 
(3)雙括弧可以進行邏輯運算,四則運算 
(4)雙括弧結構 擴充了for,while,if條件測試運算 
(5)支援多個運算式運算,各個運算式之間用“,”分開 

3.使用執行個體: 
3.1 擴充四則運算 
代碼如下: 
#!/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 

3,3,4 
雙括弧結構之間支援多個運算式,然後加減乘除等c語言常用運算子都支援。如果雙括弧帶:$,將獲得運算式值,賦值給左邊變數。 

3.2 擴充邏輯運算 
代碼如下: 
#!/bin/sh 
a=1; 
b="ab"; 
echo $((a>1?8:9)); 
((b!="a"))&& echo "err2"; 
((a<2))&& echo "ok"; 
運行結果: 

err2 
ok 

3.3 擴充條件測試運算(if)
代碼如下:
a=1
b=2
if ((a<b));then
echo "true";
fi
if ((a>b));then
echo "false"
fi
運行結果:
true

3.4 擴充流程式控制制語句(邏輯關係式) 
代碼如下: 
#!/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 
運算結果: 
5050 
5050 
ok 

有了雙括弧運算子:[[]],[],test 邏輯運算,let,expr就不是必須的了。

書寫優雅的shell指令碼(五)- shell中(())雙括弧運算子

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.