我已设置 git 以在合并期间执行 powershell 脚本。我在 Windows 上使用 Git Bash 执行 git 命令。Powershell 的 Write-Host 函数将文本输出到 Bash 控制台,但使用 -ForegroundColor 标志不会更改文本颜色。Powershell 脚本是否有办法在 Bash 控制台中设置其输出的颜色?
答案1
首先。
使用 Write-Host 长期以来一直是一个热门话题。甚至 PowerShell 的发明者/作者也对此争论不休。
Write-Host 被认为是有害的 - PowerShell 创始人 Jeffrey Snover
https://jsnover.com/blog/2013/12/07/write-host-considered-harmful
当您编写或审查 PowerShell 脚本时,我希望您记住以下经验规则:
使用 Write-Host 几乎总是错误的。
Write-Host 几乎总是错误的选择,因为它会干扰自动化。人们使用 Write-Host 的原因通常有两个:
关于这个话题还有很多其他的文章。
在 PoSH 的早期版本中,Write-Host 不能在管道中使用,因为使用它时数据就会从缓冲区中消失。
然而,在 PoSHv5 中 Jeffrey Snover 现在说……
使用 PowerShell v5 Write-Host 不再“杀死小狗”。数据被捕获到信息流中
描述
Write-Information cmdlet 指定 Windows PowerShell 如何处理命令的信息流数据。
Windows PowerShell 5.0 引入了新的结构化信息流(Windows PowerShell 流中的第 6 个),可用于在脚本和其调用方(或托管环境)之间传输结构化数据。Write-Information 允许您向流中添加信息性消息,并指定 Windows PowerShell 如何处理命令的信息流数据。
屏幕上的彩色文本方便用户交互 - 甚至可以轻松解决。
Write-Verbose 为蓝色 Write-Warning 为橙色
通过这样做,您仍然可以使用颜色,而无需使用 Write-Host...
PowerTip:不使用 Write-Host 以彩色方式编写 PowerShell 输出
摘要:无需使用 Write-Host cmdlet 即可将彩色输出写入 Windows PowerShell 控制台。
其次,您也没有说明您正在使用什么编辑器/控制台。powershell.exe/powershell_ise.exe 或其他东西,比如 VSCode。
现在,全面披露:我没有在 Bash 中尝试过这一点。然而,无需花费额外的时间配置 PoSH 以实现 Bash 集成...
配置 PowerShell ISE 以用于 Git 和 GitHub
本博客文章的目的是配置 PowerShell ISE(集成脚本环境),以便可以从中执行 Git 版本控制管理。您会发现大多数教程都会尝试引导您使用 SSH 而不是 HTTPS 从命令行将您的存储库同步到 GitHub,但如果您使用的是基于 Windows 的机器,那么这确实过于复杂且没有必要。
http://mikefrobbins.com/2016/02/09/configuring-the-powershell-ise-for-use-with-git-and-github
...那么,bash 终端和 PoSH 控制台是两个不同的环境。如果你说,你在 PoSH 脚本中使用 Bash 命令并将输出重定向到 Bash 终端,那么我明白,但是,除了在大多数情况下使用 Write-Host 是错误的之外,当 PoSH 将输出发送到其他东西时,那么控制它的外观的是目的地,而不是 PowerShell。
即使在使用 PoSH WinForm / WPF 时,也可以从文本框发送来自 PoSH 的文本,但必须使用来自属性来设置颜色。
无论如何,使用 PowerShell 进行 GIT Bash 中的颜色讨论有很多。看看这些是否有帮助。
通过 PowerShell 使用 Git
自定义 Git 环境
您可能需要自定义 Git 环境的某些设置,尤其是如果这是新安装的 Git。作为 Git 中的优秀项目贡献者,您应该表明自己的身份,以便 Git 知道该为你的提交负责。此外,我发现 Git 在 shell 中使用的默认颜色可能难以阅读。所以我自定义了颜色以使其更明显。有关更多信息,请参阅 Git 文档中的自定义 Git 主题。
以下命令只需运行一次。您正在设置全局首选项,因此,一旦设置完成,每次启动新 shell 时都会使用它们。
https://seanonit.wordpress.com/2016/12/05/using-git-from-powershell
在 Windows 上的 git bash 中设置 ls 的颜色
我最近安装了适用于 Windows 的 GitHub,并且正在使用 git bash 提示符——现在困扰我的一件事是,当我输入 LS 时,所有目录都以蓝色列出。
我如何更改我的 git bash shell 以便当我输入 LS 时目录以不同于蓝色的颜色列出?
https://stackoverflow.com/questions/14049896/setting-colors-for-ls-in-git-bash-on-windows
如何在 Windows 版 Ubuntu 上更改 bash 中的配色方案?
我尝试过用https://terminal.sexy和 http://ciembor.github.io/4bit/但我无法让任何它们的导出内容与 Windows 上 Ubuntu 上的 bash 一起工作。
自定义 boUoW 中颜色的正确方法是什么?