Es ist möglich, die Textfarbe in der Bash-Konsole über ein Powershell-Skript zu ändern

Es ist möglich, die Textfarbe in der Bash-Konsole über ein Powershell-Skript zu ändern

Ich habe Git so eingerichtet, dass während Zusammenführungen ein Powershell-Skript ausgeführt wird. Ich verwende Git Bash unter Windows für Git-Befehle. Die Write-Host-Funktion von Powershell gibt Text an die Bash-Konsole aus, aber die Verwendung des Flags -ForegroundColor ändert die Textfarbe nicht. Gibt es eine Möglichkeit für das Powershell-Skript, die Farbe seiner Ausgabe in der Bash-Konsole festzulegen?

Antwort1

Alles der Reihe nach.

Die Verwendung von Write-Host ist seit langem ein heiß diskutiertes Thema. Sogar vom Erfinder/Autor von PowerShell.

Write-Host als schädlich eingestuft – von PowerShell-Gründer Jeffrey Snover

https://jsnover.com/blog/2013/12/07/write-host-considered-harmful

Wenn Sie PowerShell-Skripts schreiben oder überprüfen, sollten Sie die folgende Faustregel beachten:

Die Verwendung von Write-Host ist fast immer falsch.

Write-Host ist fast immer falsch, da es die Automatisierung beeinträchtigt. Normalerweise verwenden Benutzer Write-Host aus zwei Gründen:

Es gibt viele weitere Artikel zu diesem Thema.

In früheren Versionen von PoSH konnte Write-Host nicht in der Pipeline verwendet werden, da die Daten aus dem Puffer verschwinden, sobald man es verwendet.

In PoSHv5 sagt Jeffrey Snover jetzt jedoch ...

Mit PowerShell v5 „tötet Write-Host keine Welpen mehr“. Daten werden im Infostream erfasst

https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Write-Information?view=powershell-5.1

Beschreibung

Das Cmdlet „Write-Information“ gibt an, wie Windows PowerShell Informationsstromdaten für einen Befehl verarbeitet.

Windows PowerShell 5.0 führt einen neuen strukturierten Informationsstrom (Nummer 6 in Windows PowerShell-Streams) ein, mit dem Sie strukturierte Daten zwischen einem Skript und seinen Aufrufern (oder der Hostumgebung) übertragen können. Mit Write-Information können Sie dem Stream eine Informationsmeldung hinzufügen und angeben, wie Windows PowerShell Informationsstromdaten für einen Befehl verarbeitet.

Farbiger Text auf dem Bildschirm für die Benutzerinteraktion – aber auch das lässt sich leicht umgehen.

Write-Verbose hat eine blaue Farbe Write-Warning hat eine orange Farbe

Sie können weiterhin Farben verwenden, ohne Write-Host zu verwenden, indem Sie Folgendes tun ...

PowerTip: Schreiben Sie PowerShell-Ausgabe in Farbe, ohne Write-Host zu verwenden

https://blogs.technet.microsoft.com/heyscriptingguy/2012/10/11/powertip-write-powershell-output-in-color-without-using-write-host

Zusammenfassung: Schreiben Sie farbige Ausgaben in die Windows PowerShell-Konsole, ohne das Cmdlet „Write-Host“ zu verwenden.

Zweitens geben Sie auch nicht an, welchen Editor/welche Konsole Sie verwenden. powershell.exe/powershell_ise.exe oder etwas anderes, sagen wir VSCode.

Jetzt volle Offenlegung: Ich habe das nicht in Bash versucht. Aber ohne die zusätzliche Zeit, die ich mit der Konfiguration von PoSH für die Bash-Integration verbringe …

Konfigurieren der PowerShell ISE für die Verwendung mit Git und GitHub

Das Ziel dieses Blogartikels ist es, die PowerShell ISE (Integrated Scripting Environment) so zu konfigurieren, dass die Verwaltung der Git-Versionskontrolle von dort aus durchgeführt werden kann. Die meisten Tutorials, die Sie finden, versuchen, Sie dazu zu bringen, SSH statt HTTPS zu verwenden, um Ihre Repositories über die Befehlszeile mit GitHub zu synchronisieren. Das ist jedoch viel zu kompliziert und unnötig, wenn Sie einen Windows-basierten Computer verwenden.

http://mikefrobbins.com/2016/02/09/configuring-the-powershell-ise-for-use-with-git-and-github

...dann sind das Bash-Terminal und die PoSH-Konsole zwei verschiedene Umgebungen. Wenn Sie sagen, dass Sie den Bash-Befehl in einem PoSH-Skript verwenden und die Ausgabe an das Bash-Terminal umleiten, dann verstehe ich das, aber abgesehen davon, dass die Verwendung von Write-Host in den meisten Fällen falsch ist, wenn PoSH die Ausgabe an etwas anderes sendet, dann ist es das Ziel, das steuert, wie es aussehen wird, nicht PowerShell.

Auch bei der Verwendung von PoSH WinForm/WPF können Textfelder aus PoSH gesendet werden, Sie müssen jedoch die From-Eigenschaften verwenden, um Farben festzulegen.

Wie dem auch sei, es gibt mehrere Diskussionen zu Farbe in GIT Bash mit PowerShell. Sehen Sie, ob diese weiterhelfen.

Verwenden von Git aus PowerShell

Passen Sie Ihre Git-Umgebung an

Möglicherweise möchten Sie einige Einstellungen Ihrer Git-Umgebung anpassen, insbesondere wenn es sich um eine Neuinstallation von Git handelt. Als guter Projektmitarbeiter in Git sollten Sie sich identifizieren, damit Git weiß, wer für Ihre Commits verantwortlich ist. Außerdem stellte ich fest, dass die von Git in der Shell verwendeten Standardfarben schwer zu lesen sein konnten. Daher habe ich die Farben angepasst, um sie besser sichtbar zu machen. Weitere Informationen finden Sie im Thema „Anpassen von Git“ in der Git-Dokumentation.

Die folgenden Befehle müssen nur einmal ausgeführt werden. Sie legen globale Einstellungen fest. Sobald diese festgelegt sind, werden sie bei jedem Start einer neuen Shell verwendet.

https://seanonit.wordpress.com/2016/12/05/using-git-from-powershell

Festlegen von Farben für ls in Git Bash unter Windows

Ich habe vor Kurzem GitHub für Windows installiert und verwende die Git-Bash-Eingabeaufforderung. Was mich derzeit stört, ist, dass alle Verzeichnisse blau aufgelistet werden, wenn ich „LS“ eingebe.

Wie ändere ich meine Git-Bash-Shell, sodass beim Eintippen von LS die Verzeichnisse in einer anderen Farbe als Blau aufgelistet werden?

https://stackoverflow.com/questions/14049896/setting-colors-for-ls-in-git-bash-on-windows

Wie ändert man das Farbschema in Bash unter Ubuntu für Windows?

Ich habe versucht, Farbschemata zu erstellen mithttps://terminal.sexyUnd http://ciembor.github.io/4bit/aber ich schaffe es nicht, dass einer ihrer Exporte mit Bash unter Ubuntu unter Windows funktioniert.

Was ist der richtige Ansatz zum Anpassen der Farben in boUoW?

Wie ändert man das Farbschema in Bash unter Ubuntu für Windows?

verwandte Informationen