shell脚本各种括号 [] [[]] () (()) {}的含义

shell
()   ①作用域。相当于C++中{},在括号中的语句,可以使用;分隔,每句顺序执行,但是不能被括号外的语句使用其中定义的变量。
     ②初始化数组。array=(1 2 3)   for i in ${ar[@]} do echo $i done

(()) ①进制转换。echo$((8#71))->57。8表示8进制,71表示具体8进制数据,转换10进制之后是57。
     ②重定义变量。x=10;((x++));echo $x;输出6
     ③用于运算以及判断。规则上符合C语言习惯,if(($n>=10))等价于if [ $n -eq 10 ]。 for((i=0;i<10;i++))等价于for i in {0..4}

[]   ①与test命令相同,-f判断是否文件,[ -f test.txt ];
     ②运算符比较。==和!=,<用于字符串比较,-gt -eq用于整数比较。-a并且,-o或者
     ③用于正则表达式。
     ④描述数组元素。ar=(1 2 3)  for i in {0..2}do echo ${ar[i]} done

[[]] ①逻辑判断,例如&&、||、==等。shell脚本中可以多多使用[[]]以替代[]

{}   ①变量扩展。ls -al {a..c}.txt,展示a.txt,b.txt,c.txt的详细信息
     ②触发变量值。例如${ar[2]}数组ar的第三号元素值
     ③作用域。括号中的语句,使用;分隔,顺序执行。