有没有办法通过应用程序或单独的程序与 shell 交互?

有没有办法通过应用程序或单独的程序与 shell 交互?

我正在尝试找到一种方法来接收外壳的输出,然后返回输出,但是来自不同的前端接口?我正在尝试将 Linux 终端合并到一个潜在的应用程序中。

答案1

控制应用程序需要打开两个管道,使用两次pipe()。然后它派生一个子进程。

虽然仍在原始代码中,但父级关闭一个管道的写入端和另一个管道的读取端。

同时,子进程关闭这些管道的相对两端,并使用 dup2() 将它们重新分配给流 0 和 1。这为父进程留下了一个写入子进程 stdin 的管道,以及一个从子进程 stdout 读取的管道。

最后,子 exec 是所需的 shell,其中包含所需的任何参数。

答案2

expect是工具。读man expect https://linux.die.net/man/1/expect

相关内容