Цвета с командой unix "watch"?


некоторые команды, которые я использую, отображают цвета, но когда я использую их с watch, цвета исчезают:

watch -n 1 node file.js

можно ли как-то вернуть цвета?

5 64

5 ответов:

некоторые новые версии watch теперь поддерживают цвет.

watch --color ls -ahl --color.

по теме.

не используйте watch ... Когда вы используете часы программы могут обнаружить, что они не пишут на терминал, а затем полосы цвет. Вы должны использовать определенные флаги программы, чтобы сохранить контрольные коды там.

Если вы не знаете флаги или нет, вы можете сделать бедного человека смотреть на:

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

у него будет немного мерцания (часы работают "с двойным буферизацией"), но для некоторых вещей это достаточно полезно.

У вас может возникнуть соблазн сделать двойной буферизованный бедный мужские часы с помощью

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

но тогда вы снова нажмете функцию" я не пишу на терминал".

вы можете дублировать основные, без излишеств операции 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 вариант, и вы не можете обновить пакет по какой-либо причине, возможно, вы можете бросить это.

да

часы работы с цветом продукции. это часть пакета procps (по крайней мере, в debian) вот багрепорт для вашего вопроса http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 где они отвечают, что вы должны обновить пакет procps по

например, с ubuntu 11.04 этот пакет работает http://packages.debian.org/wheezy/procps

tl; dr

обновление procps

из руководства по часам:

непечатаемые символы удаляются из выходных данных программы. Используйте "cat-v" как часть командного конвейера, если вы хотите их видеть.

хотя, я не уверен, как использовать его.