您的位置:首页 > 运维架构 > Shell

bash 命令执行环境

2016-05-27 19:14 316 查看
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的文件描述符重定向进行修改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: