1つのbashスクリプトで2つの異なる端末でコマンドを実行する方法を探しています。
ある端末に「tty」と入力し、次に「tty」出力を使用して別の端末からコマンドをリダイレクトして、この操作を手動で実行する方法を知っています。
しかし、「tty」の出力を変数に格納できるスクリプトを使用してこれを自動化したいと思います。デフォルトでは、別の端末でプログラムを開始し、その活動を追跡するために監視メッセージを印刷するスクリプトを1つの端末で開始したいと思います。
私は試した:
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 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