如何在脚本中使用 less 而不获得 ESC 转义字符?

Mic*_*ant 16 less scripting escape-characters

当我less在命令行中使用时,输出就像 在此处输入图片说明

但是当我less在 bash 脚本中使用时,我得到: <code>[![在此处输入图片描述][1]][1]</code>

如何less在 bash 脚本中使用而不获取所有转义字符并使其像在交互式命令行中一样工作?

cof*_*Mug 35

使用-R标志:

-r 或 --raw-control-chars

导致显示“原始”控制字符。默认是使用插入符号显示控制字符;例如,控件-A(八进制 001)显示为“^A”。警告:当使用 -r 选项时,less 无法跟踪屏幕的实际外观(因为这取决于屏幕如何响应每种类型的控制字符)。因此,可能会导致各种显示问题,例如长线在错误的位置被拆分。

-R 或 --RAW-CONTROL-CHARS

与 -r 类似,但仅以“原始”形式输出 ANSI“颜色”转义序列。与 -r 不同,在大多数情况下,屏幕外观保持正确。ANSI“颜色”转义序列是以下形式的序列:

           ESC [ ... m
Run Code Online (Sandbox Code Playgroud)

其中“...”是零个或多个颜色规范字符 为了跟踪屏幕外观,假定 ANSI 颜色转义序列不移动光标。通过将环境变量 LESSANSIENDCHARS 设置为可以结束颜色转义序列的字符列表,您可以减少“m”以外的字符可以结束 ANSI 颜色转义序列的想法。并且您可以通过将环境变量 LESSANSIMIDCHARS 设置为可以出现的字符列表来减少认为 ESC 和 m 之间可能出现标准字符以外的字符。

less手册页。