![다른 터미널에서 명령 실행](https://rvso.com/image/109209/%EB%8B%A4%EB%A5%B8%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%20%EC%8B%A4%ED%96%89.png)
하나의 bash 스크립트에서 2개의 다른 터미널로 명령을 실행하는 방법을 찾고 있습니다.
한 터미널에 "tty"를 입력한 다음 "tty" 출력을 사용하여 다른 터미널의 명령을 리디렉션하여 수동으로 수행하는 방법을 알고 있습니다.
하지만 "tty"의 출력을 변수에 저장할 수 있는 스크립트를 사용하여 자동으로 수행하고 싶습니다. 기본적으로 다른 프로그램에서 프로그램을 시작하고 해당 활동을 추적하기 위해 모니터링 메시지를 인쇄하는 스크립트를 터미널에서 시작하고 싶습니다.
나는 시도했다 :
gnome-terminal -e "bash -c 'term2=$(tty)' ;exec bash'"
또는:
gnome-terminal -e "bash -c 'tty > term2.txt;my_var='cat term2.txt' ;exec bash'"
하지만 그들 중 누구도 내 변수에 "tty"의 출력을 저장할 수 없습니다. 수동으로 하나씩 입력하면 작동하기 때문에 이해가 되지 않습니다.
내 방법에 어떤 문제가 있는지 설명해 주시겠습니까? 제안할 만한 제안이나 다른 방법이 있으면 기꺼이 새로운 것을 배우겠습니다.
답변1
여러분의 힌트 덕분에 제 질문에 대한 답을 찾았습니다. 다음은 내 상황에서 다른 사람들에게 도움이 될 수 있는 예입니다.
터미널 창을 분할하기 위해 "tmux"를 사용했습니다. 다음 스크립트를 사용하면 창 오른쪽 창에서 Python 스크립트를 시작하고 왼쪽 창에서 bash 스크립트를 시작할 수 있습니다. "send-key" 명령을 사용하면 특정 창에 명령을 보낼 수 있습니다. 각 창에서 변수를 사용하려면 스크립트 시작 부분에 "내보내기"를 사용하여 변수를 선언하면 됩니다.
export python_script=test.py export bash_script=test_bash.sh tmux new-session -d tmux split-window -h tmux send-keys -t 1 'python $python_script' 'C-m' tmux send-keys -t 0 'bash $bash_script' 'C-m' tmux attach-session