我正在尝试创建一个类似教程的小脚本来刷新我的bash技能。
我已经定义了一个变量DISPLAY_TEXT
,它有一些文本和一组转义字符和颜色,如下所示:
DISPLAY_TEXT=${WHITE}\n\t \t ==== $HEADER ====\n\n${NOCOL}"
WHITE
和NOCOL
使用适当的ANSI转义码进行定义。
然后,使用echo
的简单管道,我将变量DISPLAY_TEXT
的值重定向到less
echo -e $DISPLAY_TEXT | less
。
我为少设定的论点是这样的:
less --prompt=["Navigate using arrows (or touchpad). Enter 'q' to exit"] -r
使用-r
输出原始字符。
程序执行正常并且输出符合预期并显示颜色(直到我再向下滚动)。主要的奇怪行为显示在下一张图片中。
有什么我不理解基本重定向,一般情况下减少或bash?这种行为并不限制我的脚本,但这是我对理解感兴趣的内容。
答案 0 :(得分:3)
less -r
告诉less
将代码传递到终端而不是过滤它们。
这并不意味着它理解这些代码的作用。然后,不理解它们就意味着它不再能够准确地检测光标位置,并且可能无法准确估计线条换行的时间和位置发生;因此,滚动时出现意外和不受欢迎的行为。