当我想重定向输出时a. 输出我将使用的程序
./a.out > output.txt
当程序从中读取内容时,这不起作用标准输入。在这种情况下,您将如何重定向输出?
我只能用
./a.out < inputs.txt > output.txt
我可以做同样的事情,但读取输入标准输入?
编辑:我意识到它有效,但我看不到提示,因为一切都进入文件输出.txt。所以,唯一的问题是看到提示标准输入并同时保留重定向。
答案1
一种选择是将提示写入stderr
而不是stdout
.它们在终端上可见,但在output.txt
.
另一种选择是不对输出使用重定向,而是将输出文件名作为参数并自行打开该文件。然后您可以stdout
根据提示使用。 (这更加灵活。您可以决定什么仅发送到文件,什么仅发送到屏幕,以及可能什么发送到两者。)
如果您无法更改代码,唯一的选择是使用tee
或其他一些此类实用程序。缓冲可能是一个问题;stdbuf
可能会有所帮助。