用途用于命令分组或子shell执行。示例12( command1; command2 )# 在子shell中执行命令不影响当前环境result$(command)# 命令替换将命令输出赋值给变量数学运算需配合$(( ))1echo$(( 5 3 ))# 输出82. 花括号{}用途用于代码块、变量扩展或序列生成。示例123{ command1; command2; }# 在当前shell执行代码块注意末尾分号和空格echo{1..5}# 输出1 2 3 4 5序列生成echo${var:-default}# 变量扩展若var未定义则返回default注意代码块末尾需有分号和空格。变量扩展时避免与重定向冲突如${var}file。3. 方括号[]和[[]]单方括号[]等效于test命令用于条件测试。需严格保留空格和运算符。123if[$a-eq5 ];then# 数值比较echoa等于5fi双方括号[[]]更强大的条件测试支持模式匹配和逻辑运算符如、||。123if[[$str *match* ]];then# 字符串模式匹配echo包含matchfi4. 尖括号用途主要用于重定向。示例123command input.txt# 输入重定向command output.txt# 输出重定向command2 error.log# 错误输出重定向5. 双圆括号(())用途专门用于算术运算。示例1234(( count ))# 变量自增if(( a b ));then# 数值比较echoa大于bfi常见问题及注意事项空格要求[]和[[]]内必须保留空格如[ $a -eq 1 ]而(())和$(())不需要。字符串比较在[[]]中使用或!进行模式匹配[]中需用或-eq。变量引用在[]中引用变量需加双引号如$var避免空值错误。