我正在尝试make
在我的目录中的一堆文件,但文件生成〜200行错误,所以他们飞过我的终端屏幕太快,我必须向上滚动阅读它们.
我想将屏幕上显示的输出传输到寻呼机,让我从头开始读取错误.但是,当我尝试
make | less
Run Code Online (Sandbox Code Playgroud)
less
不显示输出的开头 - 它显示通常通过管道输出到屏幕的输出结束,然后告诉我输出为1行长.当我尝试输入时Gg
,屏幕上的唯一一行是执行的makefile行,常规屏幕输出消失.
我使用less
不正确吗?我之前没有真正使用它,而且我遇到了类似的问题,sh myscript.sh | less
它没有立即显示输出文件的开头.
Jer*_*ock 17
错误make
出现在标准错误流(stderr
在C中),不会被正常管道重定向.如果你想将它重定向到less
,你需要make |& less
(csh等)或make 2>&1 | less
(sh,bash等).
gee*_*aur 12
错误输出被发送到一个稍微不同的地方,这个地方没有被正常的管道捕获,因为你经常想看到错误,但没有将它们与你将要进一步处理的数据混合在一起.对于这样的事情,你使用重定向:
$ make 2>&1 | less
Run Code Online (Sandbox Code Playgroud)
在bash
和zsh
(和csh
/ tcsh
,这是他们借来的地方),这可以缩短为
$ make |& less
Run Code Online (Sandbox Code Playgroud)
对于make
容易产生大量错误的事情我想稍后检查,我通常会将输出捕获到文件,然后less
将该文件捕获:
$ make |& tee make.log
$ less make.log
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7034 次 |
最近记录: |