Ruby 为什么可以';使用管道保存brew doctor的输出(或如何保存)?

Ruby 为什么可以';使用管道保存brew doctor的输出(或如何保存)?,ruby,homebrew,Ruby,Homebrew,我不确定这有多具体,但当我运行“brew医生”时,我会看到一些错误消息。如果要保存这些消息,请运行brew doctor>brewErrors.txt。我在终端中看到了错误,但是如果我cat brewErrors.txt我只会得到一个带有一些内联线的文件。这是一个更一般的问题(比如Ruby或某种库/报告方法)还是一个超窄的问题?将来,如果我遇到这种情况,我如何解决/修复它?问题是重定向STDOUT,通常错误消息会出现在STDERR上。默认情况下,每个unix进程都有3个打开的文件描述符:STDI

我不确定这有多具体,但当我运行“brew医生”时,我会看到一些错误消息。如果要保存这些消息,请运行
brew doctor>brewErrors.txt
。我在终端中看到了错误,但是如果我
cat brewErrors.txt
我只会得到一个带有一些内联线的文件。这是一个更一般的问题(比如Ruby或某种库/报告方法)还是一个超窄的问题?将来,如果我遇到这种情况,我如何解决/修复它?

问题是
重定向
STDOUT
,通常错误消息会出现在
STDERR
上。默认情况下,每个unix进程都有3个打开的文件描述符:
STDIN
STDOUT
STDERR
。您正在重定向
STDOUT
,但应该使用
STDERR
重定向

brew doctor 2> brewErrors.txt
brew doctor &> brewErrors.txt
或者同时使用
STDERR
STDOUT

brew doctor 2> brewErrors.txt
brew doctor &> brewErrors.txt
无论您使用的是
bash
shell还是更新的
zsh
shell,这都是相同的