bash linux-从stdin和stdout进行读写

时间:2019-04-11 08:13:47

标签: linux bash stdout stdin

我有一个可以从commonand行运行的应用程序,它对我来说就像一个CLI。

但是它是应用程序套件的一部分,现在我希望它们全部在启动时运行,因此它们将作为服务(系统化)启动。

因此,包括CLI在内的所有我的应用程序都运行良好。但是我看不到CLI的输出,也无法向它发送命令。

我当时正在使用stdout打印CLI屏幕-我想我可以通过输出到文件来解决此问题-但可以访问其stdout很好。更大的问题是我无法写入其标准输入。

我读到以下内容:writing-to-stdin-of-background-process并尝试进行echo -e "command\n" > /proc/.../0,但是什么都没发生-我检查了CLI的日志(被写入文件),但没有得到输入。

然后我在ls -l上进行了/proc/<pid>/fd/的操作,我注意到0 --> /dev/null的意思是stdin链接到/ dev / null。

那么,如何获得其stdin?

奖金问题-有没有一种操作方法(在同一bash shell中),这样我可以将stdin重定向到该进程的stdin并将进程stdout重定向到我的shell?

1 个答案:

答案 0 :(得分:1)

找到要重定向的终端(pty)。 pty0重定向的示例可以通过以下方式完成:

exec < /dev/pty0  #stdin
exec > /dev/pty0  #stdout