밝은 색상은 시계에 표시되지 않습니다. --color

밝은 색상은 시계에 표시되지 않습니다. --color

컬러 텍스트를 인쇄하기 위한 다음 Python 스크립트가 제공됩니다.

for i in range(30, 100):
    print(f'\033[{i}m{i}\033[0m', end=' ')
print()                                   

Bash에서 실행하면 밝은 색상이 올바르게 표시됩니다(FG 코드 91-97). 밝은 색상 표시

그러나 이 코드를 실행하면 watch --color python3 test.py밝은 색상이 올바르게 표시되지 않습니다. 밝은 색상이 표시되지 않음

실행한 watch 명령에 문제가 있는 줄 알고 sh실행해 보았지만 watch --color --exec bash -c 'python3 test.py'결과는 위와 같았습니다.

Windows WSL2를 통해 Ubuntu 20.04를 실행하고 있지만 RHEL7에서도 비슷한 동작을 볼 수 있습니다. 어떤 아이디어가 있나요?

답변1

실행하면 ANSI 시퀀스를 처리 watch --color하라는 메시지가 표시됩니다 watch.

프로그램에 색상 제한이 있습니다.코드에 내장되어 있음그럴 것이다이해하지 못하다47보다 큰 값. 버전 3.3.16(최신 안정 버전)에 적용됩니다. 를 사용하여 버전을 확인할 수 있어야 합니다 watch --version.

default:
        if (attrib >= 30 && attrib <= 37) { /* set foreground color */
            fg_col = attrib - 30 + 1;
        } else if (attrib >= 40 && attrib <= 47) { /* set background color */
            bg_col = attrib - 40 + 1;
        } else {
            return 0; /* Not understood */
        }

이것주인가지watch밝은 색상을 생각해보세요이므로 결국 WSL2에서 수정되어 채택될 것입니다. 그동안 유일한 옵션은 직접 컴파일하고 코드를 변경하는 것입니다.

관련 정보