![別の端末でコマンドを実行する](https://rvso.com/image/109209/%E5%88%A5%E3%81%AE%E7%AB%AF%E6%9C%AB%E3%81%A7%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B.png)
1 つの bash スクリプトから 2 つの異なる端末にコマンドを実行する方法を探しています。
1 つの端末で「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 つずつ入力すると機能するので、理解できません。
私の方法のどこが間違っているのか説明していただけますか? 何か提案や他の方法があれば、喜んで新しいことを学ばせていただきます。
答え1
あなたのヒントのおかげで、私は自分の質問に対する答えを見つけることができました。以下は、私と同じ状況にある他の人の役に立つことを願う例です。
ターミナル ウィンドウを分割するために「tmux」を使用しました。次のスクリプトを使用すると、ウィンドウの右側のペインで Python スクリプトを起動し、左側のペインで bash スクリプトを起動できます。「send-key」コマンドを使用すると、特定のペインにコマンドを送信できます。各ペインで変数を使用できるようにするには、スクリプトの先頭で「export」を使用して変数を宣言します。
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