próbowałem
tmux -c "shell command" split-window
ale wydaje się, że to nie działa.
Za pomocą tmux split-window
można podzielić nowe okno.
AKTUALIZACJA :
Za pomocą tmux split-window 'exec ping g.cn'
można uruchomić polecenie ping, ale po zatrzymaniu nowe okno zostanie zamknięte.
man tmux | less -p remain-on-exit
...Odpowiedzi:
Posługiwać się:
split-window
Komenda ma następującą składnię:(z
man tmux
sekcji „Windows i panele”). Zauważ, że kolejność jest ważna - polecenie musi nastąpić po którejkolwiek z poprzednich opcji, które się pojawią, i musi to być pojedynczy argument, więc musisz go zacytować, jeśli ma spacje.W przypadku takich poleceń,
ping -c
które kończą się szybko, możesz najpierw ustawićremain-on-exit
opcję:Okienko pozostanie otwarte po
ping
zakończeniu, ale będzie oznaczone jako „martwe”, dopóki nie zamkniesz go ręcznie.Jeśli nie chcesz zmieniać ogólnych opcji, istnieje inne podejście. Polecenie jest uruchamiane za pomocą
sh -c
, i możesz wykorzystać to, aby okno pozostało przy życiu na końcu:Tutaj używasz
read
polecenia powłoki, aby poczekać na nowy wiersz wprowadzony przez użytkownika po zakończeniu polecenia głównego. W takim przypadku dane wyjściowe polecenia pozostaną do momentu naciśnięcia Enterw panelu, a następnie zostaną automatycznie zamknięte.źródło
remain-on-exit
lub użyjcmd ; read
.bash --rcfile
Ta technika otwiera nową powłokę, uruchamia polecenia i pozostawia cię tam po zakończeniu poleceń:
Lub jeśli polecenie nie ma specjalnych znaków terminalu, takich jak
;
:Wykorzystuje to:
--rcfile
: Jak wywołać bash, uruchomić polecenia w nowej powłoce, a następnie oddać kontrolę użytkownikowi? | Przepełnienie stosuTMUX_PANE
: Jak podzielić okno, w którym uruchomiono polecenie „tmux split-window” zamiast bieżącego?Innym interesującym wariantem jest:
który zabija poprzedni podział, jeśli już istnieje, i pomaga zachować tylko jeden dodatkowy podział przez cały czas.
źródło