使用unix命令“观看”的颜色?

时间:2010-09-25 08:55:25

标签: linux bash ubuntu watch

我使用的一些命令显示颜色,但当我使用它们时,颜色会消失:

watch -n 1 node file.js

是否有可能以某种方式重新获得颜色?

6 个答案:

答案 0 :(得分:107)

某些较新版本的watch现在支持颜色。

例如watch --color ls -ahl --color

Related

答案 1 :(得分:19)

不要使用watch ...当您使用手表程序时,可以检测到他们没有写入终端然后剥离颜色。您必须使用特定的程序标志来保存控制代码。

如果你不知道旗帜,或者你不能让一个可怜的男人看着:

while sleep <time>; do clear; <command>; done

它会有一点闪烁(手表和#34;双缓冲&#34;)但是对于某些东西它足够有用。

你可能想要使用

做一个双重缓冲的穷人手表
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done

然后你再次点击&#34;我不是在写一个终端&#34;特征

答案 2 :(得分:15)

您可以在几行shell脚本中复制watch的基本,简单操作。

$ cat cheapwatch 
#!/bin/sh

# Not quite your Rolex

while true ; do
  clear
  printf "[%s] Output of %s:\n" "$(date)" "$*"
  # "$@" <- we don't want to do it this way, just this:
  ${SHELL-/bin/sh} -c "$*"
  sleep 1  # genuine Quartz movement
done

$ ./cheapwatch ls --color  # no problem

最终,非常聪明的人会在此脚本中删除一个tr命令来删除控制字符,然后强制用户使用--color来禁用该逻辑。暂时,这种实施的纯粹天真就是让吃颜色的怪物远离它。

如果您处于watch没有--color选项并且无法以任何原因升级软件包的情况下,也许您可​​以抛出这个英寸

答案 3 :(得分:8)

YES

手表可以使用彩色输出。 它是procps包的一部分(至少在debian中) 这是你的问题http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334的bug报告 在他们回答的地方,您应该更新procps包

e.g。使用ubuntu 11.04,这个包有效http://packages.debian.org/wheezy/procps

TL;博士

更新procps

答案 4 :(得分:1)

从观看手册:

从程序输出中删除非打印字符。如果要查看它们,请使用“cat -v”作为命令管道的一部分。

虽然,我不知道如何使用它。

答案 5 :(得分:1)

虽然其他答案可以解决此问题,但最简单的方法是使用unbuffer工具。要使用它,只需执行以下操作:

$ watch --color 'unbuffer <your-program>'

这样,您不必寻找程序的控制序列启用标志。但是需要注意的是,您的手表版本应支持--color标志。

您可以使用sudo apt-get install expect在Debian或Ubuntu上安装unbuffer。