터미널을 열고 live-f1을 실행하면 터미널(텍스트)에 초당 변경 사항에 대한 라이브 피드가 표시됩니다. 프로그램이 실행되는 동안(프로그램을 종료하려면) "Enter" 키만 사용할 수 있습니다. 따라서 콘솔에 다른 내용을 입력할 수 없습니다.
매초마다 터미널 내용을 파일에 쓰고 싶습니다.
어떻게 해야 합니까?
두 번째 콘솔을 열고 몇 가지 명령을 사용하면 될까요?
setterm -dump 명령으로 작동하도록 할 수 없습니다.
답변1
live-f1
top
또는 와 같이 터미널 제어 문자(ncurses)를 사용하여 새 데이터로 화면을 다시 그립니다 mtr
. 이것이 파일이나 비터미널 장치로 리디렉션할 때 이 모든 쓰레기를 보는 이유입니다.
안타깝게도 live-f1
통계 등을 위한 데이터를 저장하고 나중에 추출하는 데 적합한 출력을 얻을 수 있는 옵션이 제공되지 않습니다. 나중에 재생할 수 있도록 출력을 저장하려면 를 사용할 수 있습니다 script
.
그러면 live-f1이 기록되고 typescript와 timing 파일이라는 두 개의 파일이 생성됩니다.
script -c live-f1 -t 2> timingfile
그러면 출력이 재생됩니다.
scriptreplay timingfile
답변2
나는 여러 가지 방법을 사용하여 귀하에게 유용할 수 있는 파일로 출력을 캡처합니다.
script
그러면 하위 쉘이 생성되고 모든 출력이 여기에 저장됩니다. 이 작업을 수행 script
한 다음 원하는 대로 exit
서브쉘을 종료하면 출력이 "typescript"라는 파일에 저장됩니다.
tee
전체 파이프라인을 다른 곳으로 에코할 수 있습니다. 따라서 tee
표준 출력을 파일에 저장할 수 있습니다.
$ mycommand | tee myoutput
표준 오류도 캡처해야 하는 경우 리디렉션합니다.
$ mycommand 2>&1 | tee myoutput
답변3
다음과 같이 프로그램을 실행하는 것은 어떻습니까?
program > /path/to/file
program
그러면 /path/to/file
출력이 즉시 리디렉션됩니다.
터미널에 출력하려면 파일로 저장하세요. 확인하다bash에서 출력을 리디렉션하고 표준 출력으로 보내는 방법이 있습니까?