shell中()和{}的区别

半兽人 发表于: 2018-11-19   最后更新时间: 2021-08-12 11:19:43  
{{totalSubscript}} 订阅, 6,404 游览

(){}都是对一串的命令进行执行,但有所区别:

相同点:

  • (){} 都是把一串的命令放在括号里面,并且命令之间用;号隔开

不同点:

  • ()只是对一串命令重新开一个子shell进行执行,{}对一串命令在当前shell执行
  • ()最后一个命令可以不用分号,{}最后一个命令要用分号
  • ()里的第一个命令和左边括号不必有空格,{}的第一个命令和左括号之间必须要有一个空格
  • (){}中括号里面的某个命令的重定向只影响该命令。但括号外的重定向则影响到括号里的所有命令
# var=test
# echo $var
test

# (var=notest;echo $var)
notest
# echo $var
test

# { var=notest;echo $var;}
notest

# echo $var
notest
更新于 2021-08-12

查看shell更多相关的文章或提一个关于shell的问题,也可以与我们一起分享文章