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 whooder wBefehl finden. Wenn du und die Fehler umleiten willst, benutze:
<command> >& /dev/pts/#
gnome-terminalund das tty (using- ttyKommando) 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/.bashrcVerwendung zu berücksichtigen, verwenden Sie stattdessen Folgendes :
ng() { gnome-terminal -x bash -ic "$*; bash"; }
dann sollte die Ausgabe von lsfarbig sein (danke an Radu Rădeanu für diesen Hinweis ).
type lsund 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";}