Voglio eseguire un comando foo su un terminale e passare il risultato a un altro terminale. È possibile farlo?
Voglio eseguire un comando foo su un terminale e passare il risultato a un altro terminale. È possibile farlo?
Risposte:
Sì. Un'immagine che vale più di mille parole:

Quindi, devi reindirizzare l'output del tuo comando usando l' >operatore a /dev/pts/#. Puoi trovare #usando whoo il wcomando. Se vuoi reindirizzare e gli errori, usa:
<command> >& /dev/pts/#
gnome-terminale rilevare il tty (usando il ttycomando) del nuovo terminale e infine inviare l'output ad esso.
Qualcosa del genere per il tuo $HOME/.bashrc:
ng() { gnome-terminal -x sh -c "$*; bash"; }
Questo eseguirà un comando e mostrerà il risultato in una nuova finestra del terminale.
Esempi:
ng ls -l
ng echo foo
Modifica: per considerare gli alias $HOME/.bashrcdall'uso questo invece:
ng() { gnome-terminal -x bash -ic "$*; bash"; }
quindi l'output di lsdovrebbe essere colorato (grazie a Radu Rădeanu per questo suggerimento ).
type lsng type ls
ng() { gnome-terminal -x sh -c "$*; bash" ;}dovrebbe essere migliore. E se stai usando xfce (xfce4-terminal come emulatore predefinito): ng() { xfce4-terminal -x sh -c "$*; bash" ;}oppure puoi semplicemente eseguire qualsiasi emulatore predefinitong() { x-terminal-emulator -x sh -c "$*; bash";}