프로그램에서 각 스트림의 출력을 색상화하는 방법이 있습니까?

프로그램에서 각 스트림의 출력을 색상화하는 방법이 있습니까?

명령이 터미널에 쓰는 스트림을 기반으로 명령 출력에 bash 색상을 지정하는 방법을 찾고 있습니다. 각 스트림에 색상을 지정하는 방법이 있나요?

예를 들어

stdout -> regular color
stderr -> red
program created streams that write to the terminal -> blue

답변1

귀하의 요구 사항과는 다르지만 누군가가 stdout/stderr을 색상별로 구별하고 싶어했던 이 이전 질문을 읽어 볼 가치가 있습니다.

STDOUT 및 STDERR의 글꼴 색상을 설정하는 방법

답변2

가지다:

https://github.com/sickill/stderred

또는 다음 명령을 사용하여 bash에서 이 작업을 수행할 수 있습니다.

rederror() { (tput setaf 1; cat ; tput sgr0) >&2; }
#Example
someCommand() { echo normal; echo error >&2; }
someCommand 2> >( rederror )

나는 bash에서 파란색으로 터미널로 들어가는 비표준 출력을 설정할 수 없다고 생각합니다. stderred에 사용된 방법이 가능해야 합니다(그러나 stderr에만 색상을 적용한다고 생각합니다).

관련 정보