カラーテキストを変数に保存し、後でカラーで印刷する方法は?

カラーテキストを変数に保存し、後でカラーで印刷する方法は?

これにより、git status --shortgitは2つの赤い疑問符の前に追跡されていないファイルを一覧表示します。

ここに画像の説明を入力してください。

変数に保存してから、後でカラーで印刷しようとしています。これは私のbashスクリプトです。

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

-eこのフラグはbashが出力に色を付けると思いましたが、うまくいきません。

ここに画像の説明を入力してください。

どうすればいいですか?

編集:可能な冗長性は、エスケープ文字(特にANSIカラーコントロールシーケンス)がどのように機能するかを尋ねることです。私は彼らがどのように機能するのか理解していると思います。私の質問は、スクリプト出力でこれを保存する方法です。

答え1

デフォルトでは、色を生成するほとんどのプログラムは、パイプやファイルではなく端末に出力するときにのみ色を生成します。 一般的に言えば、これは良いことです。 ただし、通常はオーバーライドスイッチがあります。たとえば、色をシェル変数に保存できますls--color=alwaysたとえば、

ここに画像の説明を入力してください。

grepこの--colors=alwaysオプションもサポートされます。

gitの場合、そのオプションはcolor.ui構成設定です。

git -c color.ui=always status

関連情報