在shell中发出命令,运行程序

时间:2014-09-23 08:39:57

标签: c unix

我有一个程序在用户的shell配置文件中乱码(通过为自动生成的别名文件放置。(执行)命令)并且我无法确定如何运行父shell中的命令,即没有分支到新shell。

我只需要运行一个命令来执行别名文件,以便"程序"可以在不登录和退出的情况下使用。当然必须有另一种方式与旁边分叉的shell进行交互。

N.B。:当我说"分叉"我的意思是使用system()execl() - 正如我所说,我想将命令发送到托管程序的shell,而不是它的新实例。

1 个答案:

答案 0 :(得分:1)

在考虑了一下你的用例之后,我想你想做什么,就是发信号通知你的父shell重新加载配置,这是不可能的,但你可以做的就是反转控制。

我的意思是,不要想如何让你的父shell做某事,但让它为你做。如果您有一个修复shell配置的程序,请为它创建一个shell包装器:

/path/to/program
. ~/.bashrc # or any other way to reload the shell config

并使用. wrapper.sh调用您的程序,以确保它将在当前shell的上下文中执行。通过这种方式,程序将对配置进行更改,但不会打扰与其父进程交互,并且调用shell将在程序完成后重新加载。