如何防止 less 在退出时清除屏幕?

qua*_*ant 7 less bash

我经常通过管道命令来less读取输出(例如编译器错误)。

MyCommand | less
Run Code Online (Sandbox Code Playgroud)

这很棒,因为它可以轻松浏览大量输出,但是当我退出时less,输出就消失了。退出后如何使输出仍然可见?

这个问题不同于Is there a way to redirect a program's output and still have it go to stdout? 因为这个问题与通过 输出到文本文件有关tee,据我所知,它不提供在less和之间拆分输出的工具stdout

Mic*_*mer 14

使用less -X

禁止将 termcap 初始化和取消初始化字符串发送到终端。

这将在分页前后留下屏幕上的任何文本。所以:

command | less -X
Run Code Online (Sandbox Code Playgroud)

会有你想要的效果。请注意,如果您向上滚动,此输出仍然是错误的(重复的行) - 如果不写入文件,这是不可避免的。

您还可以将环境变量设置LESS为一个值,该值包含X默认情况下每次调用less.

如果您想写入文件而不求助于tee,您可以使用less -o filename--log-file=filename选项。


mdp*_*dpc 6

您可以使用:

 command | tee filename.out | less
Run Code Online (Sandbox Code Playgroud)

如果在运行 less 命令后仍然需要查看输出,然后通过编辑器检查 filename.out。

另一个想法是更改您的术语设置以使用哑终端类型。你必须用这个来试验。


归档时间:

查看次数:

2636 次

最近记录:

11 年,1 月 前