命令的执行环境

发布于 2023-03-14 12:37:02 字数 785 浏览 65 评论 0

shell 脚本的执行环境包括如下内容

  • 打开的文件句柄,可能继承于父 shell,或者被 exec 重定向操作所修改
  • 当前的工作目录,可能继承于父 shell,或者被 cd、pushd 和 popd 命令所修改
  • 创建文件的 mode mask,可能继承于父 shell 或者被 umask 命令所修改
  • 被 trap 所设置的信号处理
  • shell参数,可能被变量赋值操作所修改,或者被 set 命令所设置,如果是环境变量则可能由父shell继承
  • 定义的 shell 函数,可能在执行期间动态定义,也可能继承自父 shell(需要通过 export 标注)
  • 开启/关闭的 shell 选项,可以在调用 shell 时设置,也可以为 set 和 shopt 设置,若 bash 处于 POSIX shell 模式下,则子 shell 会继承父 shell 的 -e 选项
  • shell 别名,可以被 alias 定义
  • 各种前台和后台 job

而当某个外部命令被 shell 调用时,该外部命令会从 shell 中继承以下内容:

  • shell 所打开的文件句柄,包括被重定向操作所修改的句柄,若调用命令时后面加上了 &,而 bash 没有开启 job control 的情况下,命令的 stdin 会被重定向到 /dev/null
  • 当前的工作目录
  • 创建文件时的 mode mask
  • 环境变量

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

黑白记忆

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

书间行客

文章 0 评论 0

神妖

文章 0 评论 0

undefined

文章 0 评论 0

38169838

文章 0 评论 0

彡翼

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文