重定向不起作用

重定向不起作用

我想将程序的输出放入文件中。我输入了以下内容:

./prog > log 2>&1

但文件中没有任何内容“日志”。我使用的是Ubuntu 11.10,默认shell是bash。

有人知道这个原因吗以及我该如何调试它?

答案1

script -c "/path/prog" /path/log.txt

有时 shell 重定向不起作用(特别是当一个 shell 生成另一个 shell 时,我想:)。以上是通用解决方案,它只是抓取所有 shell 输出并将其放入文件中。对于您来说,这也应该有效,因为您希望在 stdout/stderr 上输出。

答案2

这在这里有效,当./prog 2>&1 >log.txt单独使用时,无法正常工作:

./prog 2>&1 |cat >log.txt

答案3

对我有用的是:

./prog >> log 2>> log

>> log重定向stdout到文件

2>> log重定向stderr到文件

&>>其他人使用两者的简写stdoutstderr但我的 Mac 和 Ubuntu 都不接受它 :(

额外:>覆盖,同时>>附加

相关内容