在管道命令中从文件内容切换到STDIN?(Linux Shell)

zsl*_*ton 7 bash shell file pipe named-pipes

我有一个程序(我没写过),它不是为了从文件中读取命令而设计的.在STDIN上输入命令非常繁琐,所以我希望能够通过在文件中编写命令来重新使用它来自动化它.麻烦的是,如果程序遇到EOF,它会无限循环尝试读取下一个命令,在屏幕上放下无数的菜单选项.

我希望能够做的是通过管道将包含命令的文件包含到程序中,然后使用某种shell魔法让它在文件的EOF中从文件切换到STDIN.

注意:我已经考虑过使用带有' - '的猫作为STDIN.不幸的是(之前我不知道),管道命令等待第一个程序的输出在启动第二个程序之前终止 - 它们不是并行运行的.如果有某种方法让程序与这种管道动作并行运行,那就行了!

有什么想法吗?谢谢你的帮助!

编辑:

我应该注意,我的目标不仅是阻止系统命中命令文件的末尾.我希望能够在文件命中EOF时继续从键盘输入命令.

Ide*_*lic 15

我会做点什么的

(cat your_file_with_commands; cat) | sh your_script

这样,当带有命令的文件完成后,第二个cat将为您的脚本提供随后在stdin上键入的任何内容.

  • 你可以这样做吗?*我不知道你可以分组命令.这是我今天的新事物.这使我不必使用第二个窗口 - 非常感谢,Idelic! (2认同)