繁体   English   中英

我们如何在ruby脚本之外持久化`source bash_profile`命令?

[英]How do we persist a `source bash_profile` command outside of a ruby script?

我们试图做的是调用source bash_profile来重新加载bash_profile文件。 该脚本获取一个人的bash_profile并将其加载到一个人的计算机上。 问题在于, source bash_profile不会在ruby脚本之外持续存在。 脚本结束后,终端看起来与以前相同。 我们如何做到使source bash_profile在ruby脚本之外仍然存在?

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

因此,您最好的办法是通过exec一个新的bash结束ruby脚本,并指定-l (或--login )选项以使其成为登录Shell,以便从采购bash_profile开始。 (您也可以通过将参数-的第一个字符设为- ,通常将其设置为-bash 。)

如果您可以控制ruby脚本的启动方式,则可以使它exec ,以代替父bash进程。 这将使过程树更整洁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM