我有一个程序(不是我写的),它不是为了从文件中读取命令而设计的。在 STDIN 上输入命令非常乏味,所以我希望能够通过将命令写入文件中以供重用来自动化它。麻烦的是,如果程序遇到 EOF,它会无限循环,试图在下一个命令中读取,将无尽的菜单选项洪流放到屏幕上。
我想做的是通过管道将包含命令的文件放入程序中,然后使用某种 shell 魔术让它在遇到文件的 EOF 时从文件切换到 STDIN。
注意:我已经考虑过将 cat 与 STDIN 的“-”一起使用。不幸的是(我以前不知道这一点),管道命令在启动第二个程序之前等待第一个程序的输出终止——它们不是并行运行的。如果有某种方法可以让程序与这种管道操作并行运行,那就行了!
有什么想法吗?感谢您的帮助!
编辑:
我应该注意,我的目标不仅是防止系统到达命令文件的末尾。当文件到达 EOF 时,我希望能够继续从键盘输入命令。