shell腳本中的雙括號用法

在剛開始學習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

相關文章
相關標籤/搜索