Ich möchte einen Befehl foo auf einem Terminal ausführen und das Ergebnis an ein anderes Terminal übergeben. Ist das möglich?
Ich möchte einen Befehl foo auf einem Terminal ausführen und das Ergebnis an ein anderes Terminal übergeben. Ist das möglich?
Antworten:
Ja ist es. Ein Bild, das mehr als tausend Worte sagt:
Sie müssen also die Ausgabe Ihres Befehls mithilfe des >
Operators an umleiten /dev/pts/#
. Sie können #
mit who
oder w
Befehl finden. Wenn du und die Fehler umleiten willst, benutze:
<command> >& /dev/pts/#
gnome-terminal
und das tty (using- tty
Kommando) des neuen Terminals erkennen und schließlich die Ausgabe an dieses senden.
So etwas für Ihre $HOME/.bashrc
:
ng() { gnome-terminal -x sh -c "$*; bash"; }
Dadurch wird ein Befehl ausgeführt und das Ergebnis in einem neuen Terminalfenster angezeigt.
Beispiele:
ng ls -l
ng echo foo
Bearbeiten: Um Aliase aus der $HOME/.bashrc
Verwendung zu berücksichtigen, verwenden Sie stattdessen Folgendes :
ng() { gnome-terminal -x bash -ic "$*; bash"; }
dann sollte die Ausgabe von ls
farbig sein (danke an Radu Rădeanu für diesen Hinweis ).
type ls
und dann ng type ls
:)
ng() { gnome-terminal -x sh -c "$*; bash" ;}
sollte es besser sein. Und wenn Sie xfce (xfce4-terminal als Standardemulator) verwenden: ng() { xfce4-terminal -x sh -c "$*; bash" ;}
oder Sie können einfach einen Standardemulator verwendenng() { x-terminal-emulator -x sh -c "$*; bash";}