我已经在这个主题上阅读了关于stackoverflow的几篇帖子,但似乎没有什么比我更合适了。 当我运行'make'时,我得到一堆stderr输出。 所以我试过
$ make &> make.log
Invalid null command.
$ make 2> make.log
make: *** No rule to make target '2'. Stop.
$ make >> file.txt 2>&1
Ambiguous output redirect.
有什么好主意吗?我正在使用/ bin / csh。 谢谢!
答案 0 :(得分:0)
您可以尝试以下操作,将stdout
和stderr
重定向到make.log
:
make >& make.log
或者
(make > stdout.file) >& stderr.file
或者您可以尝试将stdout
发送到终端,并在make.log
(make >/dev/tty) >& make.log
答案 1 :(得分:0)
此问题已部分在https://stackoverflow.com/a/21345223/3008526中处理。
需要注意的是,在csh联机帮助页中,没有提到stderr,但是如果你查找“诊断输出”,你将获得正确的引用。
你在csh中不能做的是分别重定向stderr和stdout 在csh中你不可能用bash编写:
# bash instruction, no equivalent in csh
$ instruction 2>&1 1>file | pipe_treats_error_info_only
但是,您可以合并两个输出通道:
# bash instruction, direct both stdout and stderr to file
$ instruction 1>file 2>&1
# csh instruction, direct both stdout and stderr to file
% instruction > & file
# bash instruction, direct both stdout and stderr to stdin of pipe_instruction
$ instruction 2>&1 | pipe_instruction
# csh instruction, direct both stdout and stderr to stdin of pipe_instruction
$ instruction | & pipe_instruction