De man watch
:
Caracteres não imprimíveis são removidos da saída do programa. Use "cat -v" como parte do pipeline de comandos, se quiser vê-los.
Então, como usar cat -v
se eu quiser ver a saída colorida de:
watch ls -al --color
O comando certo é
watch --color "ls -a1 --color"
Não está documentado na página do manual ou na tela --help. Eu tenho que usar cordas para encontrá-lo.
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"
vai comer as cores :(watch
from procps (o padrão na maioria das distribuições Linux, acredito) tem uma--color
opção desde a V3.3.2.Eu acho que pode não ser possível com o comando 'watch'. Aqui está uma maneira mais longa de fazer isso:
Você pode colocar isso em um script, por exemplo:
Para esclarecer, eis porque eu acho que não é possível com o comando 'watch'. Veja o que acontece se você usar cat -v:
Ele mostra os caracteres de controle de cores ... o que eu acho que não é o que você deseja.
fonte
man watch
sugere claramente que isso deve ser possível sem discordarwatch
.cat -v
para ver o queman watch
estava falando.while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;done
echo "$out"
. stackoverflow.com/q/2414150/86967Se você estiver usando um Mac, como eu, o
watch
Homebrew não suporta cores.O que você quer é fswatch, mas ainda não é o Homebrew. Para instalá-lo, você vai querer fazer um pouco mais complicado
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rb
Veja esta resposta SO para uso.
fonte
watch
se aplica a um comandoUPDATE : Acontece que as versões mais recentes do
watch
problema foram corrigidas. Portanto, se as cores dewatch --color
estão erradas, provavelmente é melhor atualizá-lo (no meu sistema, está noprocps
pacote).O suporte de cores
watch --color
é limitado em minha experiência (embora suficiente parals -l --color
). Aqui está a minha versão da resposta do @ davr com alguns recursos extras, o mais importante é o flicker reduzido. Você pode colocá-lo no seu .bashrc e usá-lo comocwatch ls -l --color
.Você também pode tentar coisas como
se o seu terminal tiver menos linhas que a saída. Isso só funciona se todas as linhas forem mais curtas que a largura do terminal. A melhor solução que conheço é:
fonte