父shell和子shell
圆括号结构
圆括号结构能够强制将其中的命令运行在子Shell中,它的基本格式为:
(
command 1
command 2
…
command n
)
圆括号内的n条命令在子Shell中运行,bash版本3之后定义了内部变量BASH_SUBSHELL,该变量记录了子Shell的层次。
子Shell只能继承父Shell的一些属性,但是,子Shell不可能反过来改变父Shell的属性。
子Shell能够从父Shell继承得来的属性如下:
当前工作目录
环境变量
标准输入、标准输出和标准错误输出
所有已打开的文件标识符
忽略的信号
子Shell不能从父Shell继承得来的属性,归纳如下:
除了环境变量和.bashrc文件中定义变量之外的Shell变量
未被忽略的信号处理
原文
http://blog.sina.com.cn/s/blog_6bd7d943010152f4.html