Od man watch
:
Znaki niedrukowalne są usuwane z wyników programu. Użyj „cat -v” jako części potoku poleceń, jeśli chcesz je zobaczyć.
Jak więc użyć, cat -v
jeśli chcę zobaczyć kolorowe wyjście z:
watch ls -al --color
Prawidłowe polecenie to
watch --color "ls -a1 --color"
Nie jest to udokumentowane na stronie podręcznika ani na ekranie --help. Muszę go użyć, aby go znaleźć.
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"
zjadają kolory :(watch
Z procps (domyślna w większości dystrybucji Linuksa, wierzę) ma--color
opcję, ponieważ V3.3.2.Myślę, że może to nie być możliwe z poleceniem „obserwuj”. Oto dłuższy sposób na zrobienie tego:
Możesz umieścić to w skrypcie, na przykład:
Aby to wyjaśnić, oto dlaczego myślę, że nie jest to możliwe dzięki poleceniu „obserwuj”. Zobacz, co się stanie, jeśli użyjesz cat -v:
Pokazuje znaki sterujące kolorem ... które moim zdaniem nie są tym, czego chcesz.
źródło
man watch
wyraźnie sugeruje, że powinno to być możliwe bez pogardywatch
.cat -v
aby zobaczyć, o czymman watch
mówiłeś.while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;done
echo "$out"
. stackoverflow.com/q/2414150/86967Jeśli używasz komputera Mac, takiego jak ja,
watch
Homebrew nie obsługuje kolorów.To, czego chcesz, to fswatch, ale nie jest to jeszcze Homebrew. Aby go zainstalować, musisz zrobić nieco bardziej skomplikowany
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rb
Zobacz tę odpowiedź SO dotyczącą użytkowania.
źródło
watch
dotyczy poleceniaAKTUALIZACJA : okazuje się, że najnowsze wersje
watch
rozwiązały problem. Jeśli więc kolorywatch --color
są nieprawidłowe, prawdopodobnie lepiej po prostu je zaktualizować (w moim systemie jest wprocps
pakiecie).Obsługa kolorów
watch --color
w moim doświadczeniu jest ograniczona (choć wystarczającals -l --color
). Oto moja wersja odpowiedzi @ davr z kilkoma dodatkowymi funkcjami, przede wszystkim zmniejszonym migotaniem. Możesz umieścić go w swoim .bashrc i używać go jakocwatch ls -l --color
.Możesz także spróbować takich rzeczy jak
jeśli twój terminal ma mniej linii niż wyjście. Działa to tylko wtedy, gdy wszystkie linie są krótsze niż szerokość terminala. Najlepsze obejście, jakie znam na to:
źródło