我在CLI上运行任务,提示我输入是/否。
选择一个选项后,屏幕上会滚动大量信息 - 包括多个错误。我想将此输出传递给一个文件,以便我可以看到错误。一个简单的'>'由于命令需要键盘输入,因此无法正常工作。
我在Ubuntu 9.1上运行。
答案 0 :(得分:40)
command &> output.txt
您可以使用&>
将stdout和stderr重定向到文件。这是command > output.txt 2>&1
的简写,其中2>&1
表示“将stderr发送到与stdout相同的位置”(stdout是文件描述符1,stderr是2)。
对于交互式命令,如果我可以使用less
并立即阅读结果,我通常不会费心保存到文件中:
command 2>&1 | less
答案 1 :(得分:4)
echo yes | command > output.txt
取决于命令如何读取它的输入(某些程序在显示它的提示之前丢弃stdin上的任何内容,但大多数没有),这应该适用于任何理智的CLI环境。
答案 2 :(得分:1)
使用2>
而非>
。
答案 3 :(得分:1)
如果程序是由一个理智的人写的,你可能想要的是stderr而不是stdout。你可以通过使用像
这样的东西来达到这个目的 foo 2> errors.txt
答案 4 :(得分:1)
你可以使用2>将错误发送到文件的选项。
示例:
命令2> error.txt
(使用选项2>)---看看它们在执行命令时是否会出现任何错误,它会将其发送到文件error.txt。