首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本中运行bash脚本

在bash脚本中运行bash脚本
EN

Unix & Linux用户
提问于 2013-05-30 11:49:16
回答 2查看 3.6K关注 0票数 2

我正在为环境管理器的安装编写bash脚本,但这意味着我必须在多个目录中安装一些东西。有关更多细节,请参见我的另一个问题。但这让我重新思考了我的方法。

我现在正在考虑制作三个单独的bash脚本。然后那个人就会给另一个打电话。事情是这样的:我需要了解如何在父shell中使用source .bash_profile。问题是,在bash脚本中调用的bash脚本是在新shell中运行还是在父shell中运行,还是在父shell中的主机bash脚本shell中运行?

我知道它在煮我的大脑。我真的想要自动化这个过程,这是我面对的墙。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2013-05-30 12:00:32

如果在shell中执行命令,则它总是作为此shell的子进程执行,除非

  1. 它是一个shell内建物(如cd)
  2. 它是来源于(. /path/to/filesource /path/to/file)
  3. 它通过exec执行。

您可以很容易地使用ps -e -o pid,ppid,user,args进行检查。

只有当变量被标记为导出时,source .bash_profile才会影响子see(参见declare -x)。

票数 4
EN

Unix & Linux用户

发布于 2013-05-30 12:13:52

这是实际的区别:

  • 运行命令会使shell创建子进程。以前在子进程中定义的任何环境变量都会丢失给父进程。
  • 使用source,脚本被迫在当前进程中运行(在父进程中)。然后,脚本中的环境变量将保持不变。
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/77636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档