当前位置: 首页>>技术教程>>正文


linux – 使用Unix命令“watch”可以显示颜色吗?

, , ,

问题描述

我使用了一些显示颜色的命令,但是当我将它们与 watch 一起使用时,颜色消失了:

watch -n 1 node file.js

是否有可能以某种方式重新显示颜色?

最佳答案

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

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

Related

次佳答案

不要使用watch …当您使用监视程序时,可以检测到它们没有写入终端,然后剥去了颜色。您必须使用特定的程序标志来将控制代码保留在那里。

如果您不知道这些标志,或者没有,您可以通过以下方式让穷人的 watch :

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

它将有一点闪烁( watch 工作”double buffered”),但是对于某些东西它已经足够有用了。

您可能会想使用以下方法制作双缓冲穷人 watch

while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done

但是,然后您将再次点击“我不在写终端”功能。

第三种答案

您可以在几行shell脚本中复制watch的基本no-frills操作。

$ 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禁用该逻辑。暂时而言,此实现的天真之处在于使color-eating怪物远离。

如果您处于watch没有--color选项的情况,并且由于某种原因而无法升级软件包,则可以将其放入。

第四种答案

watch 具有彩色输出功能。它是procps软件包的一部分(至少在debian中),此处是您的问题http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334的错误报告,他们应回答,您应该更新procps软件包

例如与ubuntu 11.04配合使用时,此软件包适用于http://packages.debian.org/wheezy/procps

长话短说

更新程序

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7826.html,未经允许,请勿转载。