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

相关文章
相关标签/搜索