我使用的一些命令显示颜色,但当我使用它们时,颜色会消失:
watch -n 1 node file.js
是否有可能以某种方式重新获得颜色?
答案 0 :(得分:107)
答案 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。