将文件重定向到特定程序后返回“stdin”

将文件重定向到特定程序后返回“stdin”

我需要使用 的bash重定向功能来实现特定的效果。

我知道我可以将文件重定向到某个程序的标准输入:

[user@host]$ application < file.txt

问题是,我想知道在文件内容传递给程序后,我是否可以重新获得对该程序输入的控制权。换句话说,我想运行类似于上述的命令,然后,我希望它等待来自标准输入(键盘)的进一步命令,而不是终止应用程序。

当我写这个问题时,我突然想到我可能可以编写另一个应用程序(或脚本),它首先将一些数据写入标准输出,然后充当回显,例如:

[user@host]$ stdin_proxy.sh | application

这样做可行吗?还有没有更好的方法?有很多 Google 教程涉及此问题,但它们都归结为一个建议 - “在读取文件内容后重新打开 stdin”。但是,我无法访问源代码application

答案1

cat可以很容易地做到这一点。

cat file.txt - | application

请注意,这不会欺骗应用程序认为它实际上已连接到终端;你需要unbuffer为了那个原因。

相关内容