Bash

如何將彩色文本儲存在變數中並稍後用顏色列印?

  • May 12, 2015

如果我這樣做git status --short了,git 會列出未跟踪的文件,前面有兩個紅色問號:

在此處輸入圖像描述

我試圖將它儲存在一個變數中,然後用顏色列印出來。這是我的 bash 腳本:

#!/bin/bash
status=$(git status --short)
echo -e "$status"

我認為該-e標誌會導致 bash 為輸出著色,但它不起作用:

在此處輸入圖像描述

我怎樣才能做到這一點?

編輯:可能的重複是詢問轉義字元,特別是 ANSI 顏色控制序列如何工作。我想我理解它們是如何工作的。我的問題是如何在腳本輸出中保留這些。

預設情況下,大多數產生顏色的程序只會在輸出到終端而不是管道或文件時產生顏色。 一般來說,這是一件好事。 然而,通常有一個超控開關。例如,ls可以使用for ,--color=always因此可以將顏色保存在 shell 變數中。例如:

在此處輸入圖像描述

grep也支持該--colors=always選項。

對於 git,對應的選項是它的color.ui配置設置:

git -c color.ui=always status

引用自:https://unix.stackexchange.com/questions/202878