【shell编程】shell中的括号、双括号、方括号和双方括号

shell中的括号、双括号、方括号和双方括号

语法:

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

特点:

  • 在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。
  • 在双括号结构中,所有变量可以不加入:“$”符号前缀。
  • 双括号可以进行逻辑运算,四则运算
  • 双括号结构 扩展了for,while,if条件测试运算
  • 支持多个表达式运算,各个表达式之间用“,”分开

 

#!/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

使用双括号,在比较过程中使用高级数学表达式:

符号 描述
val++ 后增
val-- 后减
++val 先增
--val 先减
逻辑求反
位求反
** 幂求反
<< 左位移
>> 右位移
&& 逻辑和


例如1:

$ cat test23.sh
#!/bin/bash

val1=10
if(( $val1 ** 2 > 90 ))
then
    ((val2 = $val1 ** 2))
    echo "The square of $val1 is $val2"
fi

输出:

# ./test23.sh
The square of 10 is 100

 

 

#!/bin/bash

num=3
for ((i = 0; i < $num; i++))
do
  echo "Iteration $i"
done

for ((i = 0; i < num; i++))
do
  echo "Iteration $i"
done

输出:

 

 

双方括号

  • 双方括号提供了字符串比较的高级特性。
  • 括号中可以定义一些正则表达式来匹配字符串
  • 注意不是所有的shell都支持双方括号!
$ cat test24.sh
#!/bin/bash

if [[ $USER == s* ]]
then
    echo "Hello Seal"
else
    echo "Sorry, I do not know you"
fi

输出:

# ./test24.sh
Hello Seal

 

 

参考资料

1. shell中的括号、双括号、方括号和双方括号

2. linux shell “(())” 双括号运算符使用

 

posted @ 2022-06-23 10:42  苏格拉底的落泪  阅读(70)  评论(0编辑  收藏  举报