Führen Sie einen Befehl in einem anderen Terminal aus

Führen Sie einen Befehl in einem anderen Terminal aus

Ich suche nach einer Möglichkeit, Befehle aus einem Bash-Skript auf zwei verschiedenen Terminals auszuführen.

Ich kenne eine Möglichkeit, dies manuell zu tun, indem ich „tty“ in ein Terminal eingebe und dann die Befehle vom anderen Terminal mit der „tty“-Ausgabe umleite.

Ich möchte dies jedoch automatisch mit einem Skript tun, das die Ausgabe von „tty“ in einer Variablen speichern kann. Grundsätzlich möchte ich ein Skript in einem Terminal starten, das ein Programm in einem anderen startet und Überwachungsmeldungen druckt, um seine Aktivität zu verfolgen.

Ich habe es versucht :

gnome-terminal -e "bash -c 'term2=$(tty)' ;exec bash'"

oder auch:

gnome-terminal -e "bash -c 'tty > term2.txt;my_var='cat term2.txt' ;exec bash'"

Aber keiner von ihnen kann die Ausgabe von „tty“ in meiner Variable speichern. Das verstehe ich nicht, weil es funktioniert, wenn ich sie manuell einzeln eingebe.

Können Sie mir bitte erklären, was an meiner Methode falsch ist? Wenn Sie Vorschläge oder andere Methoden vorschlagen möchten, freue ich mich, Neues zu lernen.

Antwort1

Dank eurer Hinweise habe ich die Antwort auf meine Frage gefunden. Hier ist ein Beispiel, das hoffentlich anderen in meiner Situation helfen kann:

Ich habe "tmux" verwendet, um ein Terminalfenster aufzuteilen. Das folgende Skript ermöglicht es, ein Python-Skript im rechten Fensterbereich und ein Bash-Skript im linken Fensterbereich zu starten. Der Befehl "send-key" ermöglicht es, Befehle an einen bestimmten Fensterbereich zu senden. Um Ihre Variablen in jedem Fensterbereich verwenden zu können, können Sie sie am Anfang Ihres Skripts mit "export" deklarieren.

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

verwandte Informationen