두 개의 값이 있는 화면 매개변수 -X를 사용할 때 오류가 발생했습니다.

두 개의 값이 있는 화면 매개변수 -X를 사용할 때 오류가 발생했습니다.

답변의 예에서 "뭔가"는 무엇을 의미합니까?화면에서 프로그램을 실행하고 모든 출력을 파일로 리디렉션하고 분리하는 방법, 명령이 $'' 영역 뒤에 있기 때문입니다.

screen -S workspace -X stuff $'ps aux > output-x\n'

화면에서 프로그램을 실행하고 모든 출력을 파일로 리디렉션하고 분리하는 방법

답변1

~에 따르면논평:

stuff는 사용자가 입력하는 대로 문자를 보냅니다.

이는 세션이 특정 시점(즉, 생성될 때)에 연결된 경우에만 작동하는 것 같습니다. 또한 문자를 보내기 때문에 명령을 실행하려면 개행 문자를 보내야 합니다.

Linux의 경우 나에게 도움이 된 단계는 다음과 같습니다.

  1. screen -S some_session_name
  2. Ctrl+ A D이별
  3. screen -S some_session_name -X stuff 'command'$(echo -ne '\015')

나한테서 지시를 받았어."터미널/생활" 게시물: 스크린 세션에 명령 보내기.

답변2

~에서수동:

현재 창의 입력 버퍼를 문자열로 채웁니다.

회의는 반드시아니요부착하는 데 시간이 오래 걸립니다.

분석해 보겠습니다.

  1. GNU 화면실행 중인 프로그램의 연결을 끊었다가 나중에 다시 연결할 수 있는 프로그램입니다.
  2. screen -dmS workspace연결이 끊긴 새 화면을 만듭니다.
  3. screen -S workspace -X [command]보낼 것이다[주문하다]도착하다화면세션 호출작업 공간.
  4. [주문하다]bash 명령이 아닙니다. 이것은 단지 내부 명령입니다.화면CTRL+A... :연결되었을 때 누르는 것과 동일화면세션은 괜찮습니다.
  5. 다른 예[주문하다]detach또는 sessionname myNewName.
  6. 이것[주문하다]선택한 사용자는 stuff- 이것은 단지"텍스트 붙여넣기"해당 세션에 입장하세요.
  7. stuff인수로 문자열이 필요합니다... 따라서 제출한 stuff "hello"다음 screen 세션에 다시 연결 하면 hello입력한 단어와 깜박이는 커서가 뒤따르는 것을 볼 수 있습니다...
  8. screen텍스트 실행을 속일 수 있습니다"반죽"텍스트 끝에 개행 문자(예: \n또는 )를 배치합니다.^M
  9. 이제 변경하면"반죽""hello"전체 명령의 문자열은 "hello^M"다음과 같습니다. screen -S workspace -X stuff "hello^M"... 이제 화면에 다시 연결하면 이라고 표시됩니다 Command 'hellohello' not found..
  10. hello이제 붙여넣은 텍스트를 원하는 대로 바꾸면 됩니다!

예:

screen -ls
> "No Sockets found."

screen -dmS workspace
screen -ls
> "There is a suitable screen on..."

screen -S workspace -X stuff "echo Hello World! PID $$ > hello.txt^M"
cat hello.txt
> Hello World! PID 1234

관련 정보