【发布时间】:2018-09-12 07:47:03
【问题描述】:
在 Linux API 方面,我们可以使用exec* 函数或system 函数开始运行一个shell,然后运行一些命令。
一个进程是否有可能请求一个已经在运行的 shell 进程(例如一个 bash 进程)运行一个命令,然后接收该命令的标准输出?例如,我想在正在运行的 shell 进程中运行的命令是那些生成特定于 shell 的状态信息的命令,例如dirs 和 jobs。
以上内容可以在 C 中使用一些实用程序在 bash 中完成吗(请参阅 here 和 here)?
例如,我想要一个 C 程序或 shell 脚本,它可以获得在现有 shell 进程中运行 dirs 和 jobs 的输出。
谢谢。
【问题讨论】:
-
如果没有为该目的提前配置该 shell。
-
谢谢。能否具体说明一下如何配置 shell?
-
取决于细节。例如,您可以在 shell 中运行命令以从 FIFO 读取命令并将结果写入另一个 FIFO。如果您希望它在命令上执行此操作,则可以使用信号处理程序触发该代码。
-
谢谢。可以举一些代码示例吗?
-
@l'L'l,...当我读到它时,您在其他答案中所做的与我理解的 OP 在这里要求的完全不同。在这里,他们正在自省其他交互式 shell,这与运行计划任务、在屏幕会话中或其他方面几乎没有关系。