![Bash 로그 파일의 이상한 문자 + 이를 방지하는 방법은 무엇입니까?](https://linux55.com/image/126130/Bash%20%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%9D%B4%EC%83%81%ED%95%9C%20%EB%AC%B8%EC%9E%90%20%2B%20%EC%9D%B4%EB%A5%BC%20%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
로그에 다음과 같은 이상한 문자가 나타나는 이유를 이해할 수 없습니다.
예 -
^[[1m
또는
^[(B^
또는
^[[1m
또는
^[(B^[[
또는
^[[1m
로그에서: (예)
STATUS OF SERVICES
^[(B^[[mAMBARI_METRICS...... STARTED
HDFS................ STARTED
YARN................ STARTED
ZOOKEEPER........... STARTED
^[[1m
STATUS OF COMPONENTS
^[(B^[[mAPP_TIMELINE_SERVER. STARTED,
DATANODE............ STARTED,
답변1
~처럼이르카초출력을 로그 파일로 리디렉션하는 프로그램은 파일에 로그인하기 위한 것이 아니라 텍스트 콘솔 표시용으로 형식화된 상태를 기록하기 위한 것입니다.
이것은 ^[[1m
예이다디스플레이 속성을 설정하는 데 사용되는 ANSI 제어 코드 시퀀스(전경색이나 배경색, 굵게, 밑줄 등). 이는 ^[
ASCII 제어 문자(이 경우에는 관련 ANSI 표준에서 CSI(제어 시퀀스 소개자)로 사용되는 이스케이프 문자(Esc))의 일반적인 표현입니다.
따라서 이 동작은 사용 중인 모든 프로그램에 적용됩니다. 어떤 유형의 출력 장치에 연결되어 있는지 오해함으로써 프로그램이 이러한 코드를 내보내지 않도록 속이려고 할 수도 있습니다. 많은 프로그램은 curses
환경 변수의 값을 사용하는 라이브러리를 사용합니다.TERM
일반 셸을 사용하면 후속 명령에 영향을 주지 않고 단일 명령에 대한 환경 변수 값을 일시적으로 변경할 수 있습니다.
TERM=dumb programname options