减少命令奇怪的行为

时间:2015-09-11 00:03:55

标签: bash less-unix

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

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

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

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

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

我为少设定的论点是这样的:

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

使用-r输出原始字符。

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

Cloudinary

有什么我不理解基本重定向,一般情况下减少或bash?这种行为并不限制我的脚本,但这是我对理解感兴趣的内容。

1 个答案:

答案 0 :(得分:3)

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

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