符号作用() 1. 顺序执行,如:(cmd1;cmd2;cmd3)
2. 类似``,如:$(cmd),先执行cmd再取值
3. 初始化数组,如:array=(a b c d)
(()) 1. 逻辑判断,真为1,假为0,表达式的话,结果不为0,返回0或true,为0返回1或false
2. 算术运算,不支持浮点和字符串,进制会转换为十进制输出
3. 重定义变量,如((a++))
4. 条件判断,变量可不用$,如:for((i=0;i<10;i++)),if (($i<5))
[] 1. bash命令,同test
2. 判断,[ ab \< bc ]、if [ $i -lt 5 ],比较运算符只有==和!=,-a与,-o或,真为0
3. 正则表达式,字符匹配的范围
4. Array中,引用数组的元素
[[]] 1. bash关键字,中间的字符会扩展和命令替换
2. 模式匹配,[[ hello == hell? ]],结果为真
3. 条件判断,>,<,&&,||,如:if [[ $a != 1 && $a != 2 ]]
4. 中间的达表示作为元素,返回一个退出状态码
{} 1. 拓展,不能有空格。如:touch {a,b}.txt 结果为a.txt b.txt,touch {a..c}.txt 结果为a.txt b.txt c.txt
2. 代码块,{和第一个命令之间必须有一个空格
3. 顺序执行,如:{ cmd1;cmd2;cmd3;} ,有空格