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ą who
lub w
polecenia. Jeśli chcesz przekierować i błędy, użyj:
<command> >& /dev/pts/#
gnome-terminal
i wykryje tty (za pomocą tty
polecenia) 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/.bashrc
użyj tego zamiast tego:
ng() { gnome-terminal -x bash -ic "$*; bash"; }
następnie wyjście ls
powinno być pokolorowane (dzięki Radu Rădeanu za tę podpowiedź ).
type ls
a 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";}