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

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

当我less在命令行中使用时,输出如下 在此输入图像描述

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

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

答案1

使用-R标志:

-r 或 --raw-control-chars

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

-R 或 --RAW-CONTROL-CHARS

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

           ESC [ ... m

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

来自less手册页。

相关内容