‘screen’내부의 출력을 스크립트로 가져 오는 방법은 무엇입니까? 내 스크립트에 결과를 얻을. 첫

나는이 screen인스턴스 실행하고, 나는 내부의 코드를 실행해야합니다 screen, 내 스크립트에 결과를 얻을.

첫 번째 부분은 아주 쉽습니다 screen -S session_name -X eval 'stuff "$cmd"\015'.
( 스크립트에서 찾은 줄을 수정 했습니다 )

출력을 얻는 두 번째 부분은 더 까다 롭습니다. 크기에 관계없이 전체 출력을 얻는 방법은 무엇입니까?



답변

당신은 시작할 수 screen-L옵션을 선택합니다. 이로 인해 screen screenlog.n은 현재 작업 디렉토리에 파일을 생성합니다 (n 부분은 0으로 시작).

귀하의 경우 이것은 다음과 같습니다. screen -S session_name -L -X eval 'stuff "$cmd"\015'

나중에 정리하는 것을 기억하는 한, 이것은 당신이 추구하는 것과 일치해야합니다.

로그의 마지막 줄에 대해로 쉽게 얻을 수 tail -1 screenlog.0있거나 원하는대로 전체 로그를 파싱 할 수 있습니다.


답변

나중에 도움이 될 수있는 또 하나의 뉘앙스 : 스크린 세션에있는 경우 대화식으로 로그 파일을 만들도록 요청할 수 있습니다. 눌러 ctrla H당신이 로그 파일에있어 어떤 창 덤핑 시작 화면을 물어 (제어-A는 자본 H 다음).