스크린 세션의 여러 프로세스에 걸쳐 자동으로 명령 붙여넣기

스크린 세션의 여러 프로세스에 걸쳐 자동으로 명령 붙여넣기

bash로 작성된 여러 명령 세트가 텍스트 파일에 포함되어 있고 로 구분되어 \n\n있으며 각 명령을 지정된 화면 프로세스에 자동으로 붙여넣고 싶습니다. 명확성을 위해 내 항목에는 다음 command.txt만 포함되어 있다고 가정해 보겠습니다 .

#first bunch of commands:    
executable_script1.sh
mv executable_script1 directory1


#second bunch of commands:    
executable_script2.sh
mv executable_script2 directory2

따라서 첫 번째 명령 세트는 executable_script1.sh이동한 후에 실행됩니다 executable_script1. 이 예에서 내 화면에는 3개의 프로세스가 포함되어 있습니다.

0$ htop
1$ bash
2$ bash

프로세스의 이름은 중요하지 않습니다. 유일하게 중요한 정보는 N프로세스에 화면 명령이 필요하다는 것입니다 N$. 왜냐하면 0$항상 이기 때문입니다 htop.

지금은 각 명령 세트를 해당 화면 프로세스에 수동으로 복사/붙여넣어 왔는데, 확실히 작동하는 것 같습니다. 하지만 이제는 40개가 넘는 명령 세트와 가능한 한 많은 화면 프로세스를 처리하게 될 것입니다. 그렇다면 N화면 터미널에 명령을 자동으로 붙여넣는 방법은 무엇일까요? 나는 / script가 이 문제를 해결할 것이라고 N$생각 하지만, 나는 그것에 능숙하지 않습니다. 필요한 경우 여러 명령이 포함된 파일을 만들 수 있습니다 .bashshelltxt

이 문제를 해결하는 데 도움을 주실 수 있나요? 누락된 정보가 있으면 언제든지 문의해 주세요.

답변1

드디어 답을 찾았네요 감사합니다이 게시물스택익스체인지에서! 때로는 몇 가지 다른 키워드만으로도 해결책을 찾을 수 있으므로 다른 사람이 여기에 올 경우에 대비해 답변하겠습니다.

요컨대

다음 명령을 사용하여 명령을 화면에 자동으로 붙여넣습니다 bash.

screen -x screen_name -p 1 -S stuff 'executable_script1.sh\n'

화면 처리를 의미 -p 1합니다 1$. \n명령줄을 붙여넣은 후 Enter 키를 누르는 것과 마찬가지로 명령 끝부분을 입력해야 합니다 .

세부 단계

1) screen작업할 세션을 만듭니다(여기서는 "screen_name"이라고 함).

screen -S screen_name

모든 명령에 대해 충분한 프로세스를 제공하십시오(제 예에서는 0$ htop2개의 프로세스: 1$2$). .screenrc화면 세션이 기본적으로 지정된 수의 프로세스로 시작되도록 홈 디렉터리에서 편집 할 수 있습니다 . 이 예의 경우 내 항목에는 다음이 .screenrc포함됩니다.

screen -t htop
screen -t 
screen -t 

2) 다양한 화면 프로세스에서 실행할 각 명령 세트에 대해 bash 파일을 만듭니다.

여기에는 다음을 포함하는 2개의 파일이 있습니다 screen1.

#!/bin/bash

screen -x screen_name -p 1 -X stuff 'executable_script1.sh\n'
screen -x screen_name -p 1 -X stuff 'mv executable_script1 directory1\n'

다음 screen2을 포함합니다:

#!/bin/bash

screen -x screen_name -p 2 -X stuff 'executable_script2.sh\n'
screen -x screen_name -p 2 -X stuff 'mv executable_script2 directory1\n'

3) 모든 명령을 터미널에 한 번에 붙여넣습니다.

bash /path_to_screen1/screen1 & /path_to_screen1/screen2 &

긴 계산을 수행하는 경우에도 에 명령을 붙여넣기만 하면 되기 때문에 이 터미널을 즉시 닫을 수 있습니다 screen. 수동으로 screen세션을 열어 이러한 줄이 실행되고 있는지 확인하세요.

말할 필요도 없이 많은 화면 프로세스에 전달할 명령이 많은 경우 bash 파일을 만들고 스크립트(예:)를 통해 명령(2단계 및 3단계)을 붙여넣을 수 있습니다 python. 원하는 경우 executable_script1.sh일반 터미널에서처럼 통화도 포함될 수 있습니다.pythonpython python_script.py

이것이 다른 사람들에게 도움이 되기를 바랍니다!

관련 정보