【发布时间】:2011-01-25 22:41:50
【问题描述】:
考虑这个简单的例子(显示为红色):echo -e "\033[31mHello World\033[0m"
它在终端上正确显示为红色。现在考虑:watch echo -e "\033[31mHello World\033[0m"
它不显示颜色。
注意:我知道通过清除和重新运行来编写一个模仿基本行为的循环很容易。但是清除操作会导致屏幕闪烁,在watch下不会发生这种情况
编辑:最初这个问题指定了转义序列而不是 vt100 序列,但这并不是我真正想要的,并且用单引号解决了。
【问题讨论】:
-
仅使用 shell 内置程序来清除和显示内容,技术上不会闪烁。将内容保存到 shell 变量中,然后
clear屏幕和echo变量:while sleep <time> ; do x="$( <command> 2>&1 )" ; clear ; echo "$x" ; done
标签: linux unix shell terminal watch