我们正在尝试做的是调用source bash_profile
以重新加载 bash_profile 文件。该脚本抓取一个人的 bash_profile 并将其加载到一个人的计算机上。问题是source bash_profile
不会在 ruby 脚本之外持续存在。脚本结束后,终端看起来和之前一样。我们怎样才能使它source bash_profile
在 ruby 脚本之外持续存在?
问问题
364 次
1 回答
0
通常bash_profile
会修改 bash 环境(安装函数、别名、变量、readline 绑定等),实在没有办法修改父 bash 进程的环境。
因此,您能做的最好的事情是通过exec
输入一个新的 bash 来结束 ruby 脚本,指定-l
(or --login
) 选项以使其成为登录 shell,以便它从 sourcing 开始bash_profile
。(您也可以通过设置参数的第一个字符来做到这一点-
,通常将其设置为-bash
。)
如果您可以控制 ruby 脚本的启动方式,您可能会导致它被exec
编辑,以便它替换父 bash 进程。这将使进程树更清晰。
于 2013-11-08T03:51:48.837 回答