Shell 基础知识
复合命令
- 用 “{ }” 和 “( )” 将多条命令括起来,使其在语法上成为一条命令
- 复合命令中的各个命令之间必须用分号或换行符分隔开来。如果使用 “{ }” 的话,还应注意:“ { ” 后应有至少一个空格 ,“ } ” 前应有一个分号或换行符
- 用 “ { } ” 括起来的命令在本 Shell 内执行,用 “( )” 括起来的命令在一个子 Shell 内执行
# { echo I am ; who ; } I head
>>>I am
>>>***** pts/0
# VAR1=1
# (VAR1=2; echo $VAR1)
>>>2
# echo $VAR1
>>>1
# { VAR1=2; echo $VAR1; }
>>>2
# echo $VAR1
>>>2
重要区别
二者存在重要区别:用花括号括起来的成组命令只是在本 shell 内执行命令表,不产生新的进程;而用圆括号括起来的成组命令实在新的子 shell 内执行,要建立新的子进程