GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Warum erscheinen keine Git-Farben bei der Verwendung von Watch?

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:

  • watch führt den Befehl in einer neuen Shell aus, sh .
  • .bashrc alias ls als ls --color=auto um Farben zu aktivieren.
  • sh erbt oder verwendet bash nicht 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.


Ubuntu
  1. Warum kann ich die Ausgabe von Hintergrundprozessen sehen?

  2. Langsames Internet auf Ubuntu bei Verwendung eines Switches

  3. Warum benötigt `python` bei Verwendung von os.execlp `python` als argv[0]

  4. Warum wird mein $LD_LIBRARY_PATH zurückgesetzt, wenn ich screen mit bash verwende?

  5. Überspringen Sie die Eingabeaufforderung für den Benutzernamen, wenn Sie Git verwenden

Warum ist es nicht möglich, eine Multisession-DVD mit Brasero zu brennen?

Warum sind bei Shotwell die X- und Y-Positionen umgekehrt, wenn Crop verwendet wird?

Verwenden des Watch-Befehls unter Linux

Gewusst wie:Eine Einführung in die Verwendung von Git

Warum verzögert sich mein Ubuntu-Build beim Verschieben von Fenstern?

Warum innodb_file_per_table verwenden?