【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
参考资料
2. linux shell “(())” 双括号运算符使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2018-06-23 【linux命令】nmcli