다음 명령을 사용하여 bash 세션을 기록하려고 합니다.
js:/var/tmp # script -aqf /var/tmp/out
파일 에는 out
출력 외에도 많은 쓰레기가 표시됩니다. 예를 들어 공백과 줄 바꿈 이상의 것을 볼 수 있습니다.
Script started on Tue Jul 14 14:17:57 2015
^[[?1034h^[[1m^[[31mjs-om:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[mpwd^M
/var/tmp^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[mexit^M
exit^M
문제는 인코딩에 있다고 생각합니다. 이 문제에 대한 해결책이 있습니까?
답변1
아니요, 문제는 인코딩이 아닙니다. 매뉴얼 페이지에 언급된 화면 전제 조건을 따르지 않는 것 같습니다.
Certain interactive commands, such as vi(1), create garbage in the type‐
script file. Script works best with commands that do not manipulate the
screen, the results are meant to emulate a hardcopy terminal.
복잡한 프롬프트로 생성할 수 있는 모든 종류의 콘텐츠가 있습니다. 알림 설정
PS1="$ "
쓰레기 쓰기를 방지하기 위해.
답변2
문제를 해결하는 것 외에도 환경 변수에 적절한 값을 내보내어 애플리케이션이 인쇄되지 않는 문자를 내보내지 않도록 설득 PS1
할 수 있습니다 . TERM
정식 세션은 아마도 export TERM=dumb
세션 시작 부분 script
(또는 TERM=dumb script <args>
호출 시)에 있을 것입니다. PS1
을 사용하여 이식 가능한 것을 만든다고 가정하면 tput
후자도 해당 목적에 적합할 수 있습니다.
답변3
스크립트 출력에서 제어 문자(콘솔 코드/색상 포함) 제거귀하의 질문에 대답하는 것 같습니다.
먼저, 모든 이스케이프 시퀀스의 TypeScript 파일을 지운 후 script +를 사용하십시오.