Chcę uruchomić polecenie foo na jednym terminalu i przekazać wynik do innego terminala. Czy można to zrobić?
Chcę uruchomić polecenie foo na jednym terminalu i przekazać wynik do innego terminala. Czy można to zrobić?
Odpowiedzi:
Tak to jest. Obraz wart tysiąca słów:

Musisz przekierować dane wyjściowe polecenia za pomocą >operatora do /dev/pts/#. Możesz znaleźć #za pomocą wholub wpolecenia. Jeśli chcesz przekierować i błędy, użyj:
<command> >& /dev/pts/#
gnome-terminali wykryje tty (za pomocą ttypolecenia) nowego terminala, a na koniec wyśle do niego dane wyjściowe.
Coś takiego dla twojego $HOME/.bashrc:
ng() { gnome-terminal -x sh -c "$*; bash"; }
Uruchomi to polecenie i wyświetli wynik w nowym oknie terminala.
Przykłady:
ng ls -l
ng echo foo
Edycja: Aby wziąć pod uwagę aliasy, $HOME/.bashrcużyj tego zamiast tego:
ng() { gnome-terminal -x bash -ic "$*; bash"; }
następnie wyjście lspowinno być pokolorowane (dzięki Radu Rădeanu za tę podpowiedź ).
type lsa potem ng type ls:)
ng() { gnome-terminal -x sh -c "$*; bash" ;}powinno być lepiej. A jeśli używasz xfce (xfce4-terminal jako domyślny emulator): ng() { xfce4-terminal -x sh -c "$*; bash" ;}lub możesz po prostu uruchomić dowolny domyślny emulatorng() { x-terminal-emulator -x sh -c "$*; bash";}