shell中()和{}的区别

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

相同点:

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

不同点:

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

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

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

# echo $var
notest





发表于: 2月前   最后更新时间: 2月前   游览量:1
上一条: Shell文件包含
下一条: Shell变量处理${}