可以透過 powershell 腳本更改 Bash 控制台中的文字顏色

可以透過 powershell 腳本更改 Bash 控制台中的文字顏色

我有 git setup 來在合併期間執行 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 不再「殺死小狗」。數據被捕獲到資訊流中

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

描述

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 輸出

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

摘要:無需使用 Write-Host cmdlet 將彩色輸出寫入 Windows PowerShell 控制台。

其次,您也沒有說明您正在使用什麼編輯器/控制台。 powershell.exe/powershell_ise.exe 或其他東西,例如 VSCode。

現在,全面披露:我沒有在 Bash 中嘗試過這個。然而,無需花費額外的時間為 Bash 整合配置 PoSH...

設定 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 中,from 文本框也可以從 PoSH 發送文本,但必須使用 from 屬性來設定顏色。

無論如何,在使用 PowerShell 的 GIT Bash 中有一些關於顏色的討論。看看這些是否有進一步幫助。

從 PowerShell 使用 Git

自訂您的 Git 環境

您可能想要自訂 Git 環境的一些設置,特別是如果這是新安裝的 Git。作為 Git 中優秀的專案貢獻者,您應該表明自己的身份,以便 Git 知道您的提交應該歸咎於誰。另外,我發現 Git 在 shell 中使用的預設顏色可能很難閱讀。所以我定制了顏色以使它們更明顯。有關更多信息,請參閱 Git 文件中的自訂 Git 主題。

以下命令只需運行一次。您正在設定全域首選項,因此一旦設定它們,每次啟動新 shell 時都會使用它們。

https://seanoni.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.sexyhttp://ciembor.github.io/4bit/但我無法讓他們的任何匯出在 Windows 上的 Ubuntu 上與 bash 一起使用。

在 boUoW 中自訂顏色的正確方法是什麼?

如何在 Windows 版 Ubuntu 上更改 bash 中的配色方案?

相關內容