*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?

*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?

*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?

내가 할 때 :

foo | bar

색상으로 구분된 문자열(제어 문자 포함)을 표준 출력에 쓰면 foo열에 표시되지 않습니다. 표시되도록 하는 방법이 있습니까?

답변1

*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?

해설자로서짐지, 그들은 나타났습니다.

그러나 일부 프로그램(아마도 대부분)은 다음과 같은 결과를 출력합니다.ANSI 이스케이프 코드s) 다음을 사용하여 출력이 tty가 아닌지 감지합니다.이사티(3)예를 들어 isatty(STDOUT_FILENO); 파이프에서 탈출을 원하지 않을 때 이를 처리하는 것이 고통스럽기 때문에 이것은 좋은 기능입니다.

이를 강제하는 방법을 문서화한 여러 프로그램이 있습니다.LS(1)가지다--color=always

따라서 관련 명령의 문서를 읽어보시기 바랍니다.

관련 정보