Possível alterar a cor do texto no console do Bash a partir do script do PowerShell

1

Eu tenho o git setup para executar um script do PowerShell durante as mesclagens. Eu uso o Git Bash no Windows para comandos git. A função Write-Host do Powershell envia texto para o console Bash, mas o uso do sinalizador -ForegroundColor não altera a cor do texto. Existe uma maneira do script do Powershell definir a cor de sua saída no console do Bash?

Geordie
fonte

Respostas:

1

As coisas importantes primeiro.

O uso do Write-Host é um tópico muito debatido há muito tempo. Mesmo pelo inventor / autor do PowerShell.

O host de gravação é considerado prejudicial - pelo fundador do PowerShell, Jeffrey Snover

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

Ao escrever ou revisar scripts do PowerShell, lembre-se da seguinte regra geral:

Usar o Write-Host quase sempre está errado.

Write-Host é quase sempre a coisa errada a se fazer, porque interfere na automação. Normalmente, existem dois motivos pelos quais as pessoas usam o Host de Gravação:

Existem muitos outros artigos sobre o assunto.

Nas versões anteriores do PoSH, o Write-Host não podia ser usado no pipeline, pois no momento em que você o utiliza, os dados desaparecem do buffer.

No entanto, no PoSHv5, Jeffrey Snover agora diz ...

Com o PowerShell v5 Write-Host, não "mata mais filhotes". os dados são capturados no fluxo de informações

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

Descrição

O cmdlet Write-Information especifica como o Windows PowerShell lida com dados do fluxo de informações de um comando.

O Windows PowerShell 5.0 apresenta um novo fluxo de informações estruturadas (número 6 nos fluxos do Windows PowerShell) que você pode usar para transmitir dados estruturados entre um script e seus chamadores (ou ambiente de hospedagem). Write-Information permite adicionar uma mensagem informativa ao fluxo e especificar como o Windows PowerShell manipula os dados do fluxo de informações de um comando.

Texto colorido na tela para interação com o usuário - mesmo que possa ser contornado com facilidade.

Write-Verbose tem uma cor azul Write-Warning tem uma cor laranja

Você ainda pode usar cores, sem usar o Write-Host, fazendo isso ...

Dica: Escreva a saída do PowerShell em cores sem usar o host de gravação

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

Resumo: grave a saída colorida no console do Windows PowerShell sem usar o cmdlet Write-Host.

Em segundo lugar, você também não indica qual editor / console está usando. powershell.exe / powershell_ise.exe ou outra coisa, digamos VSCode.

Agora, divulgação completa: não tentei isso no Bash. No entanto, sem gastar o tempo extra configurando o PoSH para a integração do Bash ...

Configurando o PowerShell ISE para uso com Git e GitHub

O objetivo deste artigo de blog é configurar o PowerShell ISE (Integrated Scripting Environment) para que o gerenciamento do controle de versão do Git possa ser executado a partir dele. A maioria dos tutoriais que você encontrará tentará levá-lo ao caminho do uso do SSH em vez do HTTPS para sincronizar seus repositórios com o GitHub a partir da linha de comando, mas isso é realmente muito complicado e desnecessário se você estiver usando uma máquina baseada no Windows.

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

... então, o terminal bash e o console PoSH são dois ambientes diferentes. Se você está dizendo que está usando o comando Bash em um script PoSH e está redirecionando a saída para o terminal Bash, entendo isso, mas, fora do uso do Write-Host, na maioria dos casos, o erro está errado quando o PoSH envia a saída para outra coisa, então é o destino que controla a aparência, não o PowerShell.

Mesmo usando PoSH WinForm / WPF, as caixas de texto podem ser enviadas de PoSH, mas você deve usar as propriedades from para definir cores.

De qualquer forma, existem várias discussões sobre cores no GIT Bash com PowerShell. Veja se isso ajuda mais.

Usando o Git do PowerShell

Personalize seu ambiente Git

Você pode personalizar algumas das configurações do seu ambiente Git, especialmente se esta for uma nova instalação do Git. Sendo um bom colaborador do projeto no Git, você deve se identificar para que o Git saiba a quem culpar por seus commits. Além disso, descobri que as cores padrão usadas pelo Git no shell podem ser difíceis de ler. Então, eu personalizei as cores para torná-las mais visíveis. Para obter mais informações, consulte o tópico Personalizando o Git na documentação do Git.

Os seguintes comandos precisam ser executados apenas uma vez. Você está configurando preferências globais para que, uma vez definidas, elas sejam usadas sempre que você iniciar um novo shell.

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

Configurando cores para sl no git bash no windows

Instalei recentemente o GitHub para Windows e estou usando o prompt do git bash - a única coisa que está me incomodando agora é quando eu digito LS todos os diretórios estão listados em azul.

Como altero meu shell git bash para que, quando digito LS, os diretórios sejam listados em uma cor diferente para azul?

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

Como você altera o esquema de cores no bash no Ubuntu para Windows?

Tentei criar esquemas de cores com https://terminal.sexy e http://ciembor.github.io/4bit/, mas não consigo fazer com que nenhuma de suas exportações funcione com o bash no Ubuntu no Windows.

Qual é a abordagem correta para personalizar as cores no boUoW?

Como você altera o esquema de cores no bash no Ubuntu para Windows?

postanote
fonte
Obrigado pela sua resposta! De fato tenho decidiu começar a usar Posh caso em que todas as formas padrão que você mencionou de mudar de trabalho cor do texto na consola powershell principal quando chamado através de ganchos git etc.
Geordie