Shell 雙括號運用

2021-06-09 14:03:05 字數 3103 閱讀 1420

在剛開始學習inux shell指令碼程式設計時候,對於它的 四則運算以及邏輯運算。估計很多朋友都感覺比較難以接受。特變邏輯運算子」」使用時候,必須保證運算子與算數 之間有空格。 四則運算也只能借助:let,expr等命令完成。 今天講的雙括號」(())」結構語句,就是對shell中算數及賦值運算的擴充套件。

使用方法:

語法:

((表示式1,表示式2…))

特點:

1、在雙括號結構中,所有表示式可以像c語言一樣,如:a++,b--等。

2、在雙括號結構中,所有變數可以不加入:「$」符號字首。

3、雙括號可以進行邏輯運算,四則運算

4、雙括號結構 擴充套件了for,while,if條件測試運算

5、支援多個表示式運算,各個表示式之間用「,」分開

使用例項:

?

12

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

23,3,4

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

?

12

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

9err2

ok

?

12

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

有了雙括號運算子:,,test 邏輯運算,已經let,expr 都可以拋到一邊了。

Shell 雙括號概述

1.比較兩個數的大小 bin bash 定義變數 a 1b 3 方法1,乙個方括號,需要轉義 if a b then echo 方法1 yes else echo 方法1 no fi 方法2,兩個小括號 if a b then echo 方法2 yes else echo 方法2 no fi 方法3...

shell 單括號與雙中括號的區別

出現問題 如下 bin bash zxl.sh 指令碼名 if 1 1 then ssh a.a.a.a else ssh b.b.b.b fiso easy,執行指令碼 zxl.sh 1 和 zxl.sh 2 成功登入了公司伺服器和虛擬機器。今天登入的時候,卻出問題了。我今天要登入虛擬機器,直接 ...

shell中 雙括號運算子

在學習使用shell的邏輯運算子 使用時候,必須保證運算子與算數之間有空格。四則運算也只能借助 let,expr等命令完成。今天講的雙括號 結構語句,就是對shell中算數及賦值運算的擴充套件。使用方法 語法 表示式1,表示式2 特點 1 在雙括號結構中,所有表示式可以像c語言一樣,如 a b 等。...