如何使用C ++程序在Linux中重新加载.bash_profile?

时间:2020-08-19 07:47:46

标签: c++ linux bash

我使用system(“ source〜/ .bash_profile”)重新加载它,但是它不起作用。还有其他功能或代码可以在Linux中用C ++程序重新加载bash吗?

1 个答案:

答案 0 :(得分:0)

如果您实际上是运行要影响的source ~/.bash_profile shell的进程中的命令,则命令bash有效。

启动C ++程序时,该程序是在不同进程中启动的,该进程是bash进程的子进程,因此无法修改该bash的环境过程。

实际上,它比更糟,因为C ++程序中的system()调用几乎可以肯定会运行另一个进程来完成这项工作,所以已从bash流程中删除两次。

事实上,甚至比更糟糕,因为sourcebash内部命令,这意味着您必须启动{{1} } shell来执行它:-)

因此,最终的结果是以下过程层次结构,所有这些过程实际上只能影响其自身的环境,而不能影响其之上的任何事物:

bash
相关问题