화면: 세션의 창을 나열합니다(비대화형).

화면: 세션의 창을 나열합니다(비대화형).

비대화형 터미널에서 스크린 세션의 창을 나열하는 방법이 있습니까?

screen -S 'screen_name' -X windows

~에 따르면gnu.org, 이 명령은 창 목록을 표시합니다메시지 라인 사용.

이것은 대화형 콘솔에는 괜찮지만 다른 프로그램에서 읽을 수 있도록 이것을 표준 출력으로 인쇄해야 합니다.

이를 수행할 수 있는 방법이 있습니까?

해결책

내가 찾은 가장 좋은 방법은 다음 명령을 사용하여 Windows ID 목록을 얻는 것입니다. (게시자: Stephen Harris)

screen -S 'pid.screen_name' -Q windows

이렇게 하면 인쇄할 때 창 이름이 잘리지만 실제로는 출력의 전체 크기가 잘리지 않습니다. 따라서 스크린 세션에 약 20개의 창이 있는 경우 이것이 출력입니다.

> screen -S 'pid.screen_name' -Q windows
0 bash  1 bash  2 bash  3 bash  4 bash  5 bash  6 bash  7 bash  8 bash  9 bash  10 bash  11 bash  12 bash  13 bash  14 bash  15 bash  16 bash  17 bash  18 bash  19 bash  20 bash

나는 엄청나게 많은 수의 창에 이 방법을 시도했습니다.

이 방법을 사용하면 스크린 세션에 있는 창 수를 구문 분석한 다음 다음을 사용하여 각 창에 대해 "제목" 명령을 실행할 수 있습니다.

screen -S 'pid.screen_name' -p %window_id% -Q title

%window_id%명령의 각 창 ID로 바꿉니다 windows.

이번에는 창 제목이 전혀 잘리지 않습니다. 따라서 전체 화면 이름이 표준 출력으로 인쇄됩니다.

답변1

-Q이 옵션을 사용할 수 있습니다

% screen -S 2908.pts-0.mymachine -Q windows
0- spam  1* news  6 ksh

불행하게도 터미널 너비가 맞춤을 초과하면 잘립니다. (기본적으로 명령이 실행되어 메시지 줄에 표시되지만,반품현재 표준 출력에 복사합니다).

관련 정보