È possibile cambiare il colore del testo nella console di Bash dallo script PowerShell


1

Ho installato git per eseguire uno script PowerShell durante le fusioni. Uso Git Bash su Windows per i comandi git. La funzione Write-Host di Powershell genera il testo sulla console Bash, ma l'uso del flag -ForegroundColor non cambia il colore del testo. C'è un modo per lo script Powershell di impostare il colore del suo output nella console di Bash?

Risposte:


1

Prima cosa.

L'uso di Write-Host è stato per lungo tempo un argomento molto dibattuto. Anche dall'inventore / autore di PowerShell.

Write-Host considerato dannoso - dal fondatore di PowerShell Jeffrey Snover

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

Quando scrivi o rivedi gli script di PowerShell, mi piacerebbe che tu ricordi la seguente regola empirica:

L'uso di Write-Host è quasi sempre sbagliato.

Write-Host è quasi sempre la cosa sbagliata da fare perché interferisce con l'automazione. In genere ci sono due motivi per cui le persone usano Write-Host:

Esistono molti altri articoli sull'argomento.

Nelle versioni precedenti di PoSH, Write-Host non poteva essere utilizzato nella pipeline, poiché nel momento in cui lo si utilizza i dati sono passati dal buffer.

Tuttavia, in PoSHv5 Jeffrey Snover ora dice ...

Con PowerShell v5 Write-Host non "uccide più i cuccioli". i dati vengono acquisiti nel flusso di informazioni

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

Descrizione

Il cmdlet Write-Information specifica come Windows PowerShell gestisce i dati del flusso di informazioni per un comando.

Windows PowerShell 5.0 introduce un nuovo flusso di informazioni strutturato (numero 6 nei flussi di Windows PowerShell) che è possibile utilizzare per trasmettere dati strutturati tra uno script e i relativi chiamanti (o ambiente di hosting). Write-Information consente di aggiungere un messaggio informativo allo stream e di specificare come Windows PowerShell gestisce i dati del flusso di informazioni per un comando.

Testo colorato sullo schermo per elementi di interazione dell'utente, anche che possono essere facilmente risolti.

Write-Verbose ha un colore blu Write-Warning ha un colore arancione

Puoi ancora usare i colori, senza usare Write-Host, facendo questo ...

Suggerimento: Scrivi l'output di PowerShell a colori senza usare Write-Host

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

Riepilogo: scrivere output colorato nella console di Windows PowerShell senza utilizzare il cmdlet Write-Host.

In secondo luogo, non devi inoltre specificare quale editor / console stai utilizzando. powershell.exe / powershell_ise.exe o qualcos'altro, ad esempio VSCode.

Ora, piena divulgazione: non ho provato questo in Bash. Tuttavia, senza spendere troppo tempo a configurare PoSH per l'integrazione di Bash ...

Configurazione di PowerShell ISE per l'uso con Git e GitHub

L'obiettivo di questo articolo del blog è configurare PowerShell ISE (Integrated Scripting Environment) in modo che la gestione del controllo versione Git possa essere eseguita da esso. La maggior parte dei tutorial che troverai tenteranno di guidarti lungo il percorso di utilizzo di SSH invece di HTTPS per sincronizzare i tuoi repository su GitHub dalla riga di comando, ma è davvero troppo complicato e non necessario se stai utilizzando un computer basato su Windows.

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

... quindi, bash terminal e console PoSH sono due ambienti diversi. Se stai dicendo che stai usando il comando Bash in uno script PoSH e reindirizzando l'output al terminale Bash, allora lo capisco, ma, al di fuori dell'utilizzo di Write-Host, è sbagliato nella maggior parte dei casi, quando PoSH invia output a qualcos'altro, quindi è la destinazione che controlla come apparirà, non PowerShell.

Anche utilizzando PoSH WinForm / WPF, dalle caselle di testo è possibile inviare testo da PoSH, ma è necessario utilizzare le proprietà from per impostare i colori.

Ad ogni modo, ci sono diverse discussioni sul colore in GIT Bash con PowerShell. Vedi se questi aiutano ulteriormente.

Utilizzo di Git da PowerShell

Personalizza il tuo ambiente Git

Potresti voler personalizzare alcune impostazioni del tuo ambiente Git, specialmente se si tratta di una nuova installazione di Git. Essendo un buon collaboratore del progetto in Git, dovresti identificarti in modo che Git sappia a chi dare la colpa per i tuoi impegni. Inoltre, ho scoperto che i colori predefiniti utilizzati da Git nella shell potrebbero essere difficili da leggere. Quindi ho personalizzato i colori per renderli più visibili. Per ulteriori informazioni, consultare l'argomento Personalizzazione di Git nella documentazione di Git.

I seguenti comandi devono essere eseguiti solo una volta. Stai impostando le preferenze globali, quindi, una volta impostate, vengono utilizzate ogni volta che avvii una nuova shell.

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

Impostazione dei colori per ls in git bash su windows

Di recente ho installato GitHub per Windows e sto usando il prompt di git bash - l'unica cosa che mi sta infastidendo in questo momento è quando scrivo LS tutte le directory sono elencate in blu.

Come posso cambiare la mia shell git bash in modo che quando scrivo LS le directory siano elencate in un colore diverso dal blu?

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

Come si cambia la combinazione di colori in bash su Ubuntu per Windows?

Ho provato a creare combinazioni di colori con https://terminal.sexy e http://ciembor.github.io/4bit/ ma non riesco a far funzionare le loro esportazioni con bash su Ubuntu su Windows.

Qual è l'approccio corretto per personalizzare i colori in boUoW?

Come si cambia la combinazione di colori in bash su Ubuntu per Windows?


La ringrazio per la risposta! Ho davvero deciso di iniziare a utilizzare PoSH nel qual caso tutti i modi standard che hai menzionato per cambiare il colore del testo funzionano nella console principale di PowerShell quando viene chiamato tramite git hooks ecc.
Geordie
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.