От man watch
:
Непечатные символы удаляются из вывода программы. Используйте «cat -v» как часть командного конвейера, если вы хотите их увидеть.
Так как мне использовать, cat -v
если я хочу увидеть цветной вывод из:
watch ls -al --color
Правильная команда
watch --color "ls -a1 --color"
Это не задокументировано на странице руководства или на экране --help. Я должен использовать строки, чтобы найти его.
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"
будут есть цвета :(watch
procps (по умолчанию в большинстве дистрибутивов Linux) есть--color
опция, начиная с V3.3.2.Я думаю, что это может быть невозможно с командой 'watch'. Вот более длинный способ сделать это:
Вы можете поместить это в скрипт, например:
Чтобы уточнить, вот почему я думаю, что это невозможно с помощью команды «смотреть». Посмотрите, что произойдет, если вы используете cat -v:
Он показывает вам символы управления цветом ... что я думаю, не то, что вы хотите.
источник
man watch
ясно говорит о том, что это должно быть возможно без диссингаwatch
.cat -v
чтобы увидеть, о чемman watch
идет речь.while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;done
echo "$out"
. stackoverflow.com/q/2414150/86967Если вы используете Mac, как я,
watch
от Homebrew не поддерживается цвет.То, что вы хотите, это fswatch, но это еще не Homebrew. Чтобы установить его, вам нужно сделать немного более замысловатым
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rb
Смотрите этот SO ответ для использования.
источник
watch
относится к командеОБНОВЛЕНИЕ : Оказывается, последние версии
watch
исправили проблему. Так что, если цветаwatch --color
неправильные, возможно, лучше просто обновить его (в моей системе это вprocps
пакете).В
watch --color
моем опыте поддержка цвета ограничена (хотя и достаточна дляls -l --color
). Вот моя версия ответа @ davr с некоторыми дополнительными функциями, наиболее важным из которых является уменьшение мерцания. Вы можете поместить его в свой .bashrc и использовать какcwatch ls -l --color
.Вы также можете попробовать такие вещи, как
если на вашем терминале меньше строк, чем на выходе. Это работает, только если все линии короче ширины терминала. Лучший обходной путь, который я знаю для этого:
источник