目录
单小括号()
命令组
(command1;command2;command3)连接多个命令组,用;隔开,最后一个命令后;可加可不加。括号中的命令会新开一个子shell顺序执行,所以里面的操作对括号外主进程无关。
命令替换
$(command)先执行 command 命令,得到标准输出,再将此输出放回到原来命令。
初始化数组
array=(a b c)
双小括号(())
C语言规则运算
表达式 $((exp)),其中exp只要符合C语言规则的运算符即可,包括加减乘除、+=、<=、>=等。
算术比较
在((exp))中可以进行算术比较(不能进行字符串比较),双括号中的变量可以省略$符号前缀,当然也可以带着。
单中括号[]
条件判断
[] 本质上是 test 语句,[是调用test的命令标识,]是关闭条件判断
字符范围
用作正则表达式的一部分,描述一个匹配的字符范围
数组下标
echo ${a[0]}
单大括号{}
字符扩展
for i in {0,2};do echo $i;done
输出0 2
for i in {0..2};do echo $i;done
输出0 1 2
命令组
{}与()都可以执行一连串命令,区别如下:
()会新开一个子进程,括号内命令与括号外无关。{}内的命令不会新开一个子进程运行,即脚本余下部分仍可使用括号内变量。
两者括号内的命令间都要用;隔开,但()最后一个命令的分号可有可无,但{}最后一个也必须有分号。
{}的第一个命令和左括号{之间必须要有一个空格(右括号}无此要求),而()两个括号的空格均可有可无。
字符串粘贴
${var}_hello
链接https://blog.csdn.net/m0_47219942/article/details/107442691