gpt4 book ai didi

c - 在运行程序的 shell 中发出命令

转载 作者:行者123 更新时间:2023-11-30 15:29:53 26 4
gpt4 key购买 nike

我有一个程序可以侵入用户的 shell 配置文件(通过为自动生成的别名文件放置一个 .(执行)命令),并且我无法弄清楚如何在父 shell 中运行命令,即无需 fork 到新的 shell 中。

我只需要运行一个命令来执行别名文件,这样“程序”就可以在不登录和退出的情况下使用。当然,除了 fork 之外,还必须有另一种方式与 shell 交互。

注意:当我说“ fork ”时,我的意思是同时使用 system()execl() - 正如我所说,我想将命令发送到 shell托管该程序,而不是它的新实例。

最佳答案

在考虑了您的用例之后,我想您想要做的事情,即向您的父 shell 发出信号以重新加载配置,是不可能的,但您在这里可以做的是反转控制。

我的意思是,不要考虑如何让你的父 shell 做某事,而要让它为你做。如果您有一个修复 shell 配置的程序,请为其制作一个 shell 包装器:

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

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

关于c - 在运行程序的 shell 中发出命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com