GNU/Linux >> Belajar Linux >  >> Ubuntu

Mengapa Warna Git Tidak Muncul Saat Menggunakan Jam Tangan?

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:

  • 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 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.


Ubuntu
  1. Saat Menggunakan Vlc, Mengapa Screen Saver Terus Bangun?

  2. Git Pelengkapan otomatis?

  3. Mengapa Saya Dapat Melihat Output Dari Proses Latar Belakang?

  1. Mengapa Semua Orang Menggunakan Docker?

  2. Kesalahan saat menggunakan pembantu kredensial Git dengan gnome-keyring sebagai Sudo

  3. Mengapa $LD_LIBRARY_PATH saya tidak disetel saat menggunakan layar dengan bash?

  1. Mengapa Garis Miring Balik Tunggal Ditampilkan Saat Menggunakan Kutipan?

  2. Mengapa Cuplikan Waktu Kembali Tampak Begitu Besar?

  3. Penggunaan / saat menggunakan cd