Можно изменить цвет текста в консоли Bash из скрипта PowerShell

Можно изменить цвет текста в консоли Bash из скрипта PowerShell

У меня есть настройка git для выполнения скрипта powershell во время слияний. Я использую Git Bash на Windows для команд git. Функция Write-Host Powershell выводит текст в консоль Bash, но использование флага -ForegroundColor не меняет цвет текста. Есть ли способ для скрипта Powershell задать цвет своего вывода в консоли Bash?

решение1

Первое первым.

Использование Write-Host уже давно является предметом горячих споров. Даже изобретателем/автором PowerShell.

Write-Host считается вредоносным — основатель PowerShell Джеффри Сновер

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

При написании или просмотре скриптов PowerShell я хотел бы, чтобы вы помнили следующее практическое правило:

Использование Write-Host почти всегда неправильно.

Write-Host почти всегда является неправильным решением, поскольку это мешает автоматизации. Обычно есть две причины, по которым люди используют Write-Host:

На эту тему существует множество других статей.

В более ранних версиях PoSH Write-Host нельзя было использовать в конвейере, так как в момент его использования данные исчезали из буфера.

Однако в PoSHv5 Джеффри Сновер теперь говорит...

С PowerShell v5 Write-Host больше не «убивает щенков». данные записываются в информационный поток

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

Описание

Командлет Write-Information определяет, как Windows PowerShell обрабатывает данные потока информации для команды.

Windows PowerShell 5.0 представляет новый структурированный информационный поток (номер 6 в потоках Windows PowerShell), который можно использовать для передачи структурированных данных между скриптом и его вызывающими (или средой размещения). Write-Information позволяет добавлять информационное сообщение в поток и указывать, как Windows PowerShell обрабатывает данные информационного потока для команды.

Вывод на экран цветного текста для взаимодействия с пользователем — даже это можно легко обойти.

Write-Verbose имеет синий цвет Write-Warning имеет оранжевый цвет

Вы по-прежнему можете использовать цвета, не используя Write-Host, сделав следующее...

PowerTip: Запись вывода PowerShell в цвете без использования Write-Host

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

Краткое описание: Запись цветного вывода в консоль Windows PowerShell без использования командлета Write-Host.

Во-вторых, вы также не указываете, какой редактор/консоль вы используете. powershell.exe/powershell_ise.exe или что-то еще, скажем VSCode.

Теперь, полное раскрытие информации: я не пробовал это в Bash. Тем не менее, без траты дополнительного времени на настройку PoSH для интеграции Bash...

Настройка PowerShell ISE для использования с Git и GitHub

Цель этой статьи в блоге — настроить PowerShell ISE (Integrated Scripting Environment), чтобы управление контролем версий Git можно было выполнять из него. Большинство руководств, которые вы найдете, попытаются провести вас по пути использования SSH вместо HTTPS для синхронизации ваших репозиториев с GitHub из командной строки, но это действительно слишком сложно и ненужно, если вы используете машину на базе Windows.

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

...тогда, терминал bash и консоль PoSH — это две разные среды. Если вы говорите, что используете команду Bash в скрипте PoSH и перенаправляете вывод в терминал Bash, то я понимаю, но, помимо того, что использование Write-Host в большинстве случаев неверно, когда PoSH отправляет вывод куда-то еще, то именно пункт назначения управляет тем, как он будет выглядеть, а не PowerShell.

Даже при использовании PoSH WinForm / WPF из текстовых полей можно отправлять текст из PoSH, но для установки цветов необходимо использовать свойства from.

В любом случае, есть несколько обсуждений по цвету в GIT Bash с PowerShell. Посмотрим, поможет ли это дальше.

Использование Git из PowerShell

Настройте свою среду Git

Возможно, вам захочется настроить некоторые параметры вашей среды Git, особенно если это новая установка Git. Будучи хорошим участником проекта в Git, вы должны идентифицировать себя, чтобы Git знал, кого винить за ваши коммиты. Кроме того, я обнаружил, что цвета по умолчанию, используемые Git в оболочке, могут быть трудночитаемыми. Поэтому я настроил цвета, чтобы сделать их более заметными. Для получения дополнительной информации см. раздел Настройка Git в документации Git.

Следующие команды нужно запустить только один раз. Вы устанавливаете глобальные настройки, поэтому, как только они установлены, они будут использоваться каждый раз при запуске новой оболочки.

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

Установка цветов для ls в git bash на windows

Недавно я установил GitHub для Windows и использую командную строку git bash. Единственное, что меня сейчас беспокоит, так это то, что когда я набираю LS, все каталоги отображаются синим цветом.

Как изменить оболочку git bash так, чтобы при вводе LS каталоги отображались синим цветом?

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

Как изменить цветовую схему в bash на Ubuntu для Windows?

Я пытался создать цветовые схемы сhttps://terminal.sexyи http://ciembor.github.io/4bit/но я не могу заставить ни один из их экспортов работать с bash в Ubuntu на Windows.

Каков правильный подход к настройке цветов в boUoW?

Как изменить цветовую схему в bash на Ubuntu для Windows?

Связанный контент