3

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

我已经定义了一个变量DISPLAY_TEXT,其中包含一些文本和一组转义字符和颜色,如下所示:

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

WHITENOCOL使用相应的 ANSI 转义码进行定义。

然后,使用简单的管道 with echo,我将变量的值重定向DISPLAY_TEXTlesswith echo -e $DISPLAY_TEXT | less

我为 less 设置的论点如下:

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

-r用于输出原始字符。

程序执行得很好,输出与预期的颜色一样(直到我再次向下和向上滚动)。主要的奇怪行为显示在下一张图片中。

少奇数

一般来说,我对基本重定向、less 或 bash 有什么不理解的地方吗?这种行为不会限制我的脚本,但它是我有兴趣理解的东西。

4

1 回答 1

3

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

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

于 2015-09-11T03:25:35.760 回答