MacOS의 script 명령에서 창 크기를 인식하지 못하는 오류가 발생했습니다.
개시하다
이 오류는 MacOS(BSD) 상황에서만 발생합니다.GNU/Linux(Ubuntu 등)에서는 이 오류가 발생하지 않았습니다.
script 명령 정보
UNIX에
script
라는 명령이 설치되어 있습니다.이것은 터미널의 출력을 파일에 출력하여 기록하는 것이다.Shell
script
이렇게 하면 케이스가 작동합니다.여기서부터 터미널의 출력이 기록됩니다.Shell
exit
명령의 하위 케이스script
를 통과할 때 명령을 실행하기 전의 현재 디렉터리에 파일을 생성합니다script
.이 파일에는 명령 실행에서 끝까지의 터미널 출력[1]이 기록되어 있다.
장점
터미널 출력을 파일에 기록하는 장점은 다음과 같다.
typescript
명령은 창 크기를 식별하지 못하는 오류가 있다.확인
정상 시스템
우선 명령을 실행하기 전의 창 크기를 확인하십시오.
script
명령이나 script
명령을 사용하면 터미널의 창 크기를 얻을 수 있습니다.명령하다
얻을 수 있는 정보
script
너비tput
수직 너비stty
수직 너비Shell
stty size
41 178
그런 다음 터미널의 창 크기를 변경하고 같은 명령을 다시 실행합니다.Shell
stty size
32 134
창의 크기를 조금 줄여 보았지만 잘 반영되었다.tput cols 명령을 실행할 때
이어서
tput lines
명령을 집행한다.Shell
script
그리고 창 크기를 가져옵니다.Shell
stty size
32 134
이 상태에서 창 크기를 변경하고 같은 명령을 다시 실행합니다.Shell
stty size
32 134
창의 크기를 확대하려고 했지만 수치가 반영되지 않았다.문제점
stty size
명령이나 script
명령의 수치만 반영하지 않았다면 아무런 문제가 없었지만 부작용이 있었다.예를 들어
script
,tput
,stty
등이 호출기를 시작하는 명령을 실행할 때 고장이 발생한 것으로 나타났다.가로와 세로가 올바르게 인식되지 않아 폴딩이 비활성화된 경우에도 폴딩(가로)이 발생하고 수직으로 스크롤하면 이전 디스플레이가 붙여져 디스플레이가 뒤죽박죽이 됩니다(세로).
GNU 설치 불가
BSD 구현
less
명령에 오류가 있으면 GNU 구현을 MacOS에 설치하면 되잖아요.실제로 저자는 GNU로 구현된 명령vim
과 명령man
을 맥OS에 설치해 사용했다.그러나 유감스럽게도 명령
script
과 관련해서는 맥OS에 GNU 실현 방안을 설치할 수 없다.해결책
터미널 창 크기에 따라 명령 실행
ls
명령으로 정확한 가로와 세로 폭을 알려주면 정상적인 행동을 회복할 수 있다.Shell
stty rows <縦幅> cols <横幅>
그러나 창의 크기를 조정할 때마다 가로와 세로를 검사해야 하기 때문에 상술한 명령을 실행하는 것은 매우 번거롭다.창 크기 조정 안 함
이전에도 이렇게 대응하는 경우가 있었지만 창의 크기를 중간에 바꾸지 못하는 것은 불편했다.
iTerm2 기능 사용
iTerm2에서는 명령을 사용하지 않더라도 터미널의 출력을 파일에 기록하도록 설정하는 기능을 실현했다.
grep
->script
->stty
->script
에서 목적지를 저장하는 경로를 지정하면 출력 파일이 이 디렉터리에 저장됩니다.체크
Profiles
를 하면 회피 시퀀스 등이 제외됩니다.도피 순서가 있으면 보기 어려우니 미리 확인해 보는 것이 좋다.그러나 이는 iTerm2일 뿐 다른 터미널 애플리케이션(Terminal.app와 VS 코드의 터미널 기능 등)에는 적용되지 않는다.
필자는 최근 시작하는 앱을 줄이기 위해 VS 코드의 터미널을 사용하려 했으나 출력을 기록할 수 없어 두 번째 단계를 밟았다.
뭐 좋은 해결책 있어요?
참고 자료
선택하지 않은 경우
Session
파일이 생성됩니다.또한 이미 존재하는 파일Miscellaneous
의 경우 덮어씁니다.출력하고 바로 파일로 출력하는 옵션도 있고, 덮어쓰기가 아니라 추가적인 옵션도 있지만, 생략합니다.자세한 내용은 Automatically log session input to files in
를 참조하십시오.↩︎ Reference
이 문제에 관하여(MacOS의 script 명령에서 창 크기를 인식하지 못하는 오류가 발생했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/noraworld/articles/script-command-bug텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)