为什么“cvs --help | less”不起作用?

3 less pipe stderr

我不知道为什么,但管道cvs --helpless不起作用。可能是因为cvs --help输出不是标准输出(1)或错误输出(2),而是其他地方。你能告诉我它在哪里输出吗?

ako*_*ond 7

原因是因为有两种类型的输出。

  • 正常输出 ( STDOUT)
  • 错误输出 ( STDERR)

cvs --help将帮助信息打印到STDERR. pipe( |) 需要写入的数据STDOUT以便可以读取STDIN

为了从得到的帮助文本STDERR,以STDOUT(以便它读取由管),你需要重定向它。

cvs --help 2>&1 | less
Run Code Online (Sandbox Code Playgroud)

进一步的解释在这里