![*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?](https://linux55.com/image/119643/*nix%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C%20stdout%2Fstderr%EC%9D%84%20%ED%8C%8C%EC%9D%B4%ED%95%91%ED%95%A0%20%EB%95%8C%20%EC%83%89%EC%83%81(%EC%A0%9C%EC%96%B4%20%EB%AC%B8%EC%9E%90)%EC%9D%B4%20%ED%91%9C%EC%8B%9C%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?
내가 할 때 :
foo | bar
색상으로 구분된 문자열(제어 문자 포함)을 표준 출력에 쓰면 foo
열에 표시되지 않습니다. 표시되도록 하는 방법이 있습니까?
답변1
*nix 시스템에서 stdout/stderr을 파이핑할 때 색상(제어 문자)이 표시되지 않는 이유는 무엇입니까?
해설자로서짐지, 그들은 나타났습니다.
그러나 일부 프로그램(아마도 대부분)은 다음과 같은 결과를 출력합니다.ANSI 이스케이프 코드s) 다음을 사용하여 출력이 tty가 아닌지 감지합니다.이사티(3)예를 들어 isatty(STDOUT_FILENO)
; 파이프에서 탈출을 원하지 않을 때 이를 처리하는 것이 고통스럽기 때문에 이것은 좋은 기능입니다.
이를 강제하는 방법을 문서화한 여러 프로그램이 있습니다.LS(1)가지다--color=always
따라서 관련 명령의 문서를 읽어보시기 바랍니다.