분리된 화면에 매우 긴 명령을 보내면 "오류 원격 제어가 너무 길어짐"이 발생합니다.

분리된 화면에 매우 긴 명령을 보내면 "오류 원격 제어가 너무 길어짐"이 발생합니다.

독립 실행형으로 보내는 긴 명령이 있습니다 screen.

screen -x screen-name -p 1 -X stuff 'mycommand\n'

이것에 영감을 받아관련 게시물. 작동하지만 mycommand너무 길면 화면 오류가 발생합니다.

원격제어 시간이 너무 깁니다.

명령을 작은 조각으로 나눌 수 없습니다. 그것은 같다:

( { script1.sh; script2.sh; } </dev/null &>/dev/null &)

mv스크립트 사이에는 많은 스크립트와 작업이 있습니다 .

그렇다면 screen이렇게 긴 명령줄을 어떻게 받아들일 수 있을까요? 당신의 도움을 주셔서 감사합니다!

답변1

화면의 stuff명령은 명령을 실행하지 않지만 입력을 시뮬레이트합니다. 입력되고 있다고 생각되는 내용을 읽고 개행 문자가 수신되면 실행하는 스크린 세션에서 쉘이 실행되는 것처럼 들립니다.

따라서 필요한 경우 명령을 더 작은 조각으로 잘라서 한 번에 한 문자씩 보낼 수 있습니다. 화면 내 셸은 최소한 마지막 문자를 보낼 때까지 기다립니다 \n.

(즉, 모든 것을 쉘 스크립트 파일에 넣고 실행하거나 가져오는 것이 훨씬 쉬울 것입니다.)

관련 정보