我正在用 看我复杂命令的输出less
,问题是stderr
丢失了。stderr
行通常会stdout
在less
. 我希望它们被打印到控制台,当我退出时less
,可以一起看到它们。
我知道有可能是没有解决这个,我读到tee
和multitee
,但至今没有运气。
Som*_*ude 19
你必须重定向stderr
到stdout
:
$ ./somecommad 2>&1 | less
Run Code Online (Sandbox Code Playgroud)
检查您的外壳手册(例如man bash
。)
Red*_*ick 11
也许
command 2> command.err | less; cat command.err; rm command.err
Run Code Online (Sandbox Code Playgroud)
附录
下面是对那些忽略仔细阅读问题和没有阅读上述 OP 澄清评论的人的澄清。
海利克斯指出:
stderr 行通常列在 less 内的 stdout 行之间
并且,在对早期回答者的评论中,写道:
你告诉我如何将 stderr 重定向到 stdout 但这不是我想要的。我不希望 stderr 在 less 内与 stdout 混合。当我退出较少时,我希望 stderr 在终端中
问题可能是特定于平台的,这肯定是我在较旧的 Unix SVR4 平台上遇到的问题。
如果,在这样的平台上,你做类似的事情
find / ... | less
Run Code Online (Sandbox Code Playgroud)
任何错误消息(例如目录权限)在 less 中显示如下
stdout line 1
stdout line 2
error message text
stdout line 4
Run Code Online (Sandbox Code Playgroud)
以便输出行被错误消息遮挡。
如果刷新页面,输出行会正确显示,但会丢失错误消息。当您退出时,除了命令提示符外,屏幕将被清除。
如果你做类似的事情
find / ... 2>&1 | less
Run Code Online (Sandbox Code Playgroud)
错误消息与标准输出混合在一起。再次退出时,屏幕为空。
如果你想先在less中只细读标准输出,然后在less退出后看到错误信息,你需要一个不同的解决方案。
这就是我在最初的两行答案中暂时建议的内容。
归档时间: |
|
查看次数: |
6697 次 |
最近记录: |