Beim Ausführen von git status -sb Ich sehe:

Ich möchte watch (ab procps-ng 3.3.3) ein Repository. Die --color Option soll Farben behalten.
Interessanterweise funktioniert es mit ls :
$ watch --color "ls --color"
Anzeigen:

Allerdings für git die Farben verschwinden:
$ watch --color "git status -sb"

Also, warum watch Farben von ls anzeigen aber nicht von git Ausgabe?
Akzeptierte Antwort:
Die folgenden Aussagen sind wahr:
watchführt den Befehl in einer neuen Shell aus,sh..bashrcaliaslsalsls --color=autoum Farben zu aktivieren.sherbt oder verwendetbashnicht Aliasse.
Also beim watch führt ls aus , es fragt nicht nach Farben, es läuft nur die einfache alte Version. Sie können dies umgehen, aber – wie aditya betont – müssen Sie auch Farben auf watch aktivieren damit es sie richtig verarbeiten kann.
Ein funktionierendes Beispiel für ls ist:
watch --color -- ls --color=always
Wenn Sie --color nicht übergeben Zum Anschauen sehen Sie eine Reihe hässlicher Farbcodes.
ls --color wird als ls --color=always interpretiert .
ls --color=auto nicht Druckfarbe in der Uhr. Dies deutet darauf hin, dass die Farbunterstützung vom Terminal selbst abgeleitet wird.
Um mehr über den Grund dafür zu erfahren, können wir testen, ob die Watch-Shell denkt, dass es sich um ein echtes Terminal handelt:
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
Ich vermute, dass einige Anwendungen darauf (oder ähnliches) achten, um festzustellen, ob sie Farben aktivieren sollen oder nicht.