Saat menjalankan git status -sb Saya melihat:

Saya ingin watch (dari procps-ng 3.3.3) sebuah repositori. --color pilihan seharusnya menjaga warna.
Menariknya, ini bekerja dengan ls :
$ watch --color "ls --color"
Menampilkan:

Namun untuk git warnanya hilang:
$ watch --color "git status -sb"

Jadi, mengapa watch tampilkan warna dari ls tapi bukan dari git keluaran?
Jawaban yang Diterima:
Pernyataan berikut ini benar:
watchmenjalankan perintah di shell baru,sh..bashrcaliaslssebagails --color=autountuk mengaktifkan warna.shtidak mewarisi atau menggunakanbashalias.
Jadi ketika watch menjalankan ls , itu tidak meminta warna, itu hanya menjalankan versi lama yang polos. Anda dapat menghindari ini, tetapi—seperti yang ditunjukkan aditya—Anda juga perlu mengaktifkan warna di watch untuk memprosesnya dengan benar.
Contoh kerja untuk ls adalah:
watch --color -- ls --color=always
Jika Anda tidak lulus --color untuk menonton, Anda akan melihat sekumpulan kode warna jelek sebaris.
ls --color ditafsirkan sebagai ls --color=always .
ls --color=auto tidak cetak warna di jam tangan. Ini menunjukkan bahwa itu menyimpulkan dukungan warna dari terminal itu sendiri.
Untuk mengetahui alasannya lebih lanjut, kita dapat menguji apakah cangkang jam menganggapnya sebagai 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.