Dari man watch
:
Karakter non-cetak dihapus dari output program. Gunakan "cat -v" sebagai bagian dari pipeline perintah jika Anda ingin melihatnya.
Jadi, bagaimana saya menggunakan cat -v
jika saya ingin melihat keluaran berwarna dari:
watch ls -al --color
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"
akan memakan warna :(watch
from procps (default pada kebanyakan distro Linux, saya percaya) memiliki--color
opsi sejak V3.3.2.Saya pikir itu tidak mungkin dengan perintah 'jaga'. Ini cara yang lebih panjang untuk melakukannya:
Anda dapat memasukkan ini ke dalam skrip, misalnya:
Untuk memperjelas, inilah mengapa saya pikir itu tidak mungkin dengan perintah 'menonton'. Lihat apa yang terjadi jika Anda menggunakan cat -v:
Ini menunjukkan kepada Anda karakter kontrol warna ... yang saya pikir bukan yang Anda inginkan.
sumber
man watch
jelas menunjukkan bahwa itu harus mungkin tanpa dissingwatch
.cat -v
untuk melihat apa yangman watch
sedang dibicarakan.while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;done
echo "$out"
. stackoverflow.com/q/2414150/86967Jika Anda menggunakan Mac, seperti saya,
watch
dari Homebrew tidak mendukung warna.Apa yang Anda inginkan adalah fswatch tetapi belum Homebrew. Untuk menginstalnya, Anda harus melakukan yang sedikit lebih berbelit-belit
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rb
Lihat jawaban SO ini untuk penggunaan.
sumber
watch
berlaku untuk sebuah perintahUPDATE : Ternyata versi terbaru
watch
memperbaiki masalah. Jadi, jika warnanyawatch --color
salah, mungkin lebih baik memperbaruinya saja (di sistem saya, ada diprocps
paket).Dukungan warna dalam
watch --color
pengalaman saya terbatas (meskipun cukup untukls -l --color
). Inilah versi saya dari jawaban @ davr dengan beberapa fitur tambahan, yang terpenting adalah pengurangan kedipan. Anda dapat meletakkannya di .bashrc Anda dan menggunakannya sebagaicwatch ls -l --color
.Anda juga dapat mencoba hal-hal seperti
jika terminal Anda memiliki garis lebih sedikit daripada output. Itu hanya bekerja jika semua garis lebih pendek dari lebar terminal. Solusi terbaik yang saya tahu adalah:
sumber