【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 @   苏格拉底的落泪  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
历史上的今天:
2018-06-23 【linux命令】nmcli
点击右上角即可分享
微信分享提示