本文共 810 字,大约阅读时间需要 2 分钟。
shell具有的执行环境,它由以下组成:
*打开的文件在调用shell继承,通过提供给exec内置重定向改性 * 当前工作目录被设置成cd, pushd 或popd,或继承shell 调用 * 文件创建模式掩码通过的umask设置或从shell的父继承*当前traps被设置trap
* 由变量赋值或设置在环境中设置或继承shell的父shell参数 * 在执行过程中定义或从shell的父在环境中继承shell函数 * 在调用(无论是默认或命令行参数),或通过设置选项启用 * 通过禁用了javascript启用的选项 * 用别名定义的shell别名 * 不同的进程ID,包括那些后台作业,$$的值,PPID的值当要执行比内置或壳功能的其它一个简单的命令,它在一个由以下的独立的执行环境被调用。除非另外指明,否则值是从shell继承。
*shell的打开的文件,加上重定向到指定命令的任何修改和补充
* 当前的工作目录 * 文件创建模式掩码 * shell变量和函数标记为出口,出口与为命令变量一起,在环境中传递 * shell捕捉的陷阱被重置为从shell的父进程中继承的值,shell忽略的陷阱被忽略在这种单独的环境调用的命令不能影响shell的执行环境。
命令替换,命令用括号分组,异步命令都在子shell环境是shell的重复调用
环境,但shell捕捉的陷阱被重置为在shell从其父继承在调用的值。被用来作为管道的一部分内建命令在一个子shell环境也将执行。到子shell环境中所做的更改不能影响shell的执行环境。 子shell催生执行命令替换继承父壳-e选项的值。如果不是在POSIX模式,bash的清除在这样子shell-e选项。如果命令后面是&和作业控制处于不活动状态,该命令的缺省标准输入是空文件/ dev/ null的。否则,调用的命令继承调用shell的文件描述符重定向进行修改。
转载地址:http://dnwdb.baihongyu.com/