다른 터미널에서 명령 실행

다른 터미널에서 명령 실행

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

관련 정보