我们如何在ruby脚本之外保留`source bash_profile`命令?

时间:2013-11-08 03:10:55

标签: ruby bash shell .bash-profile

我们要做的是调用source bash_profile重新加载bash_profile文件。该脚本抓取一个人的bash_profile并将其加载到一个人的计算机上。问题是source bash_profile不会在ruby脚本之外保留。脚本结束后,终端看起来和以前一样。我们怎样才能使source bash_profile在ruby脚本之外持续存在?

1 个答案:

答案 0 :(得分:0)

bash_profile通常会修改bash环境(安装函数,别名,变量,readline绑定等),并且实际上无法修改父bash进程的环境。

因此,您可以做的最好的事情是通过exec新的bash结束ruby脚本,指定-l(或--login)选项以使其成为login shell所以它将从采购bash_profile开始。 (您也可以通过创建参数-的第一个字符来完成此操作,通常将其设置为-bash。)

如果您可以控制ruby脚本的启动方式,则可以使其成为exec,以便替换父bash进程。这将成为一个更清洁的流程树。