GNU 화면 : 화면이 연결되어 있지 않으면 명령을 입력 할 수 없습니까?


10

다음 스크립트가 있습니다

screen -d -m -S $1                #start screen minimized
screen -S $1 -X stuff "$beast     
"                                 #stuff commands

화면을 먼저 부착하지 않으면 물건의 영향으로 아무것도하지 않는 것 같습니다. 왜 이런 것이며 어떻게 스크립트를 수정하여 화면을 첨부 할 필요가 없습니까?

답변:


14

분리 모드 ( screen -d -m) 에서 스크린 세션을 시작하면 창이 선택되지 않으므로 나중에 전송 된 입력 screen -X stuff은 손실됩니다. 키 입력을 창 0 ( -p 0) 으로 보내도록 명시 적으로 지정해야합니다 . 어떤 이유에서든 해당 화면 세션에서 다른 창을 만드는 경우에 대비하여이 방법을 사용하는 것이 좋습니다.

screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"

( 키 printf \\r를 엄격하게 에뮬레이트하기 위해 Return많은 프로그램이 개행 문자 ( \n)를 허용하지는 않습니다 .)


감사! 완벽하게 작동합니다. 주제를 벗어난 것에 대해 죄송합니다
dukevin

나를 위해 작동하지 않습니다.
Tanner Strunk 2018 년

2

최근 에 unix.stackexchange.com에 대한 질문에 답변하려고했습니다 .

요약하면 붙 잡지 않는 한 화면에 기본적으로 선택된 창이 없지만 Gilles는 화면 명령에 인수 를 추가하여 창을 강제로 선택 하는 방법을 보여주었습니다 -p 0.

개인적으로로 전환하는 것이 좋습니다tmux . tmux에서 작동하도록 화면 명령을 이식하는 방법은 다음과 같습니다.

tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.