Pernyataan berikut ini benar:
watchmenjalankan perintah di shell baru sh,.
.bashrcalias lssebagai ls --color=autountuk mengaktifkan warna.
shtidak mewarisi atau menggunakan bashalias.
Jadi ketika watchdijalankan ls, itu tidak meminta warna, itu hanya menjalankan versi lama. Anda dapat menghindari ini tetapi — seperti yang ditunjukkan aditya — Anda juga perlu mengaktifkan warna watchagar dapat memprosesnya dengan benar.
Contoh untuk bekerja lsadalah:
watch --color -- ls --color=always
Jika Anda tidak lulus --coloruntuk menonton, Anda akan melihat banyak kode warna jelek sebaris.
ls --colordiartikan sebagai ls --color=always.
ls --color=auto tidak mencetak warna di arloji. Ini menunjukkan bahwa itu menyimpulkan dukungan warna dari terminal itu sendiri.
Untuk alasan lebih lanjut, kami dapat menguji apakah arloji arloji menganggapnya terminal nyata :
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
Saya menduga bahwa beberapa aplikasi melihat itu (atau serupa) untuk mengetahui apakah mereka harus mengaktifkan warna atau tidak.