하나의 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