引言在编写Shell脚本时,经常需要将多个命令组合在一起执行,以便统一重定向或作为管道的一个阶段。bash提供了两种方式:组命令和子shell。虽然它们看起来相似,但底层行为却有本质区别——尤其在环境隔离方面。理解这些差异,能帮助我们写出更高效、更可靠的脚本。基本语法与要求组命令使用花括号{},子shell使用圆括号()。# 组命令语法{command1;command2;[command3;...]}# 子shell语法(command1;command2;[command3;...])重要注意事项:组命令中,花括号与命令之间必须用空格分隔。组命令中的最后一条命令必须以分号;或换行符结尾,然后再写右花括号。子shell则没有这些约束,括号内可直接写命令。# 错误:缺少空格或最后命令未以分号结尾{ls-l;echo"Hello"}# 会报错# 正确写法{ls-l;echo"Hello";}