Pernyataan berikut ini benar:
watch
menjalankan perintah di shell baru sh
,.
.bashrc
alias ls
sebagai ls --color=auto
untuk mengaktifkan warna.
sh
tidak mewarisi atau menggunakan bash
alias.
Jadi ketika watch
dijalankan ls
, itu tidak meminta warna, itu hanya menjalankan versi lama. Anda dapat menghindari ini tetapi — seperti yang ditunjukkan aditya — Anda juga perlu mengaktifkan warna watch
agar dapat memprosesnya dengan benar.
Contoh untuk bekerja ls
adalah:
watch --color -- ls --color=always
Jika Anda tidak lulus --color
untuk menonton, Anda akan melihat banyak kode warna jelek sebaris.
ls --color
diartikan 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.