Quando si esegue git status -sb Vedo:

Voglio watch (da procps-ng 3.3.3) un repository. Il --color l'opzione dovrebbe mantenere i colori.
È interessante notare che funziona con ls :
$ watch --color "ls --color"
Mostrando:

Tuttavia per git i colori scompaiono:
$ watch --color "git status -sb"

Allora, perché watch mostra i colori da ls ma non da git uscita?
Risposta accettata:
Le seguenti affermazioni sono vere:
watchesegue il comando in una nuova shell,sh..bashrcaliaslscomels --color=autoper abilitare i colori.shnon eredita né usabashalias.
Quindi quando watch esegue ls , non sta chiedendo i colori, sta solo eseguendo la semplice vecchia versione. Puoi aggirare questo problema ma, come sottolinea aditya, devi anche abilitare i colori su watch affinché li elabori correttamente.
Un esempio funzionante per ls è:
watch --color -- ls --color=always
Se non superi --color da guardare, vedrai un sacco di brutti codici colore in linea.
ls --color viene interpretato come ls --color=always .
ls --color=auto non colore di stampa nell'orologio. Ciò suggerisce che stia deducendo il supporto del colore dal terminale stesso.
Per ulteriori informazioni sul motivo, possiamo verificare se la shell dell'orologio pensa che sia un vero terminale:
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
Sospetto che alcune applicazioni stiano guardando quello (o simili) per dire se devono attivare i colori o meno.