Цвета с командой unix "watch"?
некоторые команды, которые я использую, отображают цвета, но когда я использую их с watch, цвета исчезают:
watch -n 1 node file.js
можно ли как-то вернуть цвета?
5 ответов:
не используйте
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