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$
생각 하지만, 나는 그것에 능숙하지 않습니다. 필요한 경우 여러 명령이 포함된 파일을 만들 수 있습니다 .bash
shell
txt
이 문제를 해결하는 데 도움을 주실 수 있나요? 누락된 정보가 있으면 언제든지 문의해 주세요.
답변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$ htop
2개의 프로세스: 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
일반 터미널에서처럼 통화도 포함될 수 있습니다.python
python python_script.py
이것이 다른 사람들에게 도움이 되기를 바랍니다!