vt100和linux,关于linux:如何使watch命令解释vt100序列?

考虑以下简单示例(显示为红色):

echo -e"\033[31mHello World\033[0m"

它在终端上正确显示为红色。 现在考虑:

watch echo -e"\033[31mHello World\033[0m"

它不显示颜色。

注意:我知道编写一个通过清除和重新运行来模仿基本行为的循环很容易。 但是,清除操作会导致屏幕闪烁,这在手表情况下不会发生

编辑:最初这个问题指定转义序列而不是vt100序列,但这不是我真正想要的,并用单引号解决。

通过仅使用shell内置程序来清除和显示内容,从技术上讲它不会闪烁。 将内容保存到shell变量中,然后在屏幕上clear,在echo var中保存:while sleep ; do x="$( 2>&1 )" ; clear ; echo"$x" ; done

在Ubuntu 11.10上的watch 0.3.0的man watch中:

By default watch will normally not pass escape characters, however if you use the --c or --color option, then watch will interpret ANSI color sequences for the foreground.

在我的终端上,它似乎不适用于您的文字字符串,但这些方法可以:

watch --color 'tput setaf 1; echo foo'

watch --color ls -l --color

它在mac osx上的手表man watch的手册页中,但是afaik它不起作用。

编辑:

watch的最新版本支持颜色。在问题示例的特定情况下,您将需要使用额外的引号级别来保留引号和转义符:

watch 'echo -e"\033[31mHello World\033[0m"'

从man watch:

-c, --color

Interpret ANSI color sequences.

先前:

从man watch:

Non-printing characters are stripped from program output. Use"cat -v"

as part of the command pipeline if you want to see them.

但是他们没有得到解释,所以我认为没有任何办法。

我基本上相信它是不可能的。

我相信手表的最新版本可能增加了对颜色的支持,但是我没有找到相关文档。

为什么在使用git时无法正常工作?

@AmanuelNega:它对我有用。我尝试了watch git status和watch git log。您没有说您尝试了哪个子命令,或者它到底对您没有用,所以我无法猜测您的问题是什么。如果您的意思是您没有变色,则当git的输出未输出到tty时,您需要告诉git输出颜色:watch --color git log --color。这是典型的行为(例如,尝试ls | cat与ls --color | cat。

谢谢,我知道了。我将配置更改为始终使用颜色

您可以尝试单引号命令:

watch 'echo -e"\tHello World"'

在我的机器上,这给我留下了-e作为第一个字符,以及带有正确制表符的hello world.

看来-e是我的echo版本的默认值。尽管如此,朝着正确制表符hello world的方向发展

发生了两次双引号:

看什么手表

echo -e"\033[31mHello World\033[0m"

watch调用的shell见:

echo -e \033[31mHello World\033[0m

然后,即使引用了反斜杠,反斜杠也开始起作用,这成为了引用梦night。

为了简化事情,我可能使事情太简单了。没错,这行得通,我对此表示反对,但是我真正要的是使vt100代码正常工作,这似乎是与仅解释转义序列不同的问题。例如:echo -e" 033 [31mHello World 033 [0m"]即使在单引号下也无法正常运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值