나는이 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
있거나 원하는대로 전체 로그를 파싱 할 수 있습니다.
답변
나중에 도움이 될 수있는 또 하나의 뉘앙스 : 스크린 세션에있는 경우 대화식으로 로그 파일을 만들도록 요청할 수 있습니다. 눌러 ctrl– a H당신이 로그 파일에있어 어떤 창 덤핑 시작 화면을 물어 (제어-A는 자본 H 다음).