컬러 텍스트를 변수에 저장하고 나중에 컬러로 인쇄하는 방법은 무엇입니까?

컬러 텍스트를 변수에 저장하고 나중에 컬러로 인쇄하는 방법은 무엇입니까?

이렇게 하면 git status --shortgit은 두 개의 빨간색 물음표 앞에 추적되지 않은 파일을 나열합니다.

여기에 이미지 설명을 입력하세요.

변수에 저장했다가 나중에 컬러로 인쇄하려고 합니다. 이것은 내 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

관련 정보