减少命令奇怪的行为

Less command odd behaviour

我正在尝试创建一个类似教程的小脚本来刷新我的 bash 技能。

我定义了一个变量 DISPLAY_TEXT,它有一些文本和一组转义字符和颜色,如下所示:

DISPLAY_TEXT=${WHITE}\n\t \t ==== $HEADER ====\n\n${NOCOL}"

WHITENOCOL 使用适当的 ANSI 转义码定义。

然后,使用带有 echo 的简单管道,我使用 echo -e $DISPLAY_TEXT | less.

将变量 DISPLAY_TEXT 的值重定向到 less

我为less设置的参数是这样的:

less --prompt=["Navigate using arrows (or touchpad). Enter 'q' to exit"] -r

-r输出原始字符。

程序执行正常,输出符合预期,并显示颜色(直到我再次向下和向上滚动)。主要的奇怪行为显示在下一张图片中。

对于 basic 重定向,less 或一般 bash 有什么我不理解的地方吗?此行为并未限制我的脚本,但我有兴趣了解它。

less -r 告诉 less 将代码传递到终端而不是过滤它们。

这并不意味着它理解这些代码的作用。不理解它们意味着它不再能够准确地检测光标位置,并且可以不准确地估计换行发生的时间和地点;因此,滚动时出现意外和不希望的行为。