Odpowiedzi:
Posługiwać się:
tmux split-window "shell command"
split-windowKomenda ma następującą składnię:
split-window [-dhvP] [-c start-directory] [-l size | -p percentage] [-t target-pane] [shell-command] [-F format]
(z man tmuxsekcji „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 -cktóre kończą się szybko, możesz najpierw ustawić remain-on-exitopcję:
tmux set-option remain-on-exit on
tmux split-window 'ping -c 3 127.0.0.1'
Okienko pozostanie otwarte po pingzakoń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:
tmux split-window 'ping -c 3 127.0.0.1 ; read'
Tutaj używasz readpolecenia 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.
remain-on-exitlub użyj cmd ; read.
bash --rcfile
Ta technika otwiera nową powłokę, uruchamia polecenia i pozostawia cię tam po zakończeniu poleceń:
tmux-split-cmd() ( tmux split-window -dh -t $TMUX_PANE "bash --rcfile <(echo '. ~/.bashrc;$*')" )
tmux-split-cmd 'cd; pwd; ping google.com'
Lub jeśli polecenie nie ma specjalnych znaków terminalu, takich jak ;:
tmux-split-cmd ping google.com
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:
tmux-split-cmd-uniq() (
if [ "$(tmux list-panes | wc -l | cut -d' ' -f1)" -ne 1 ]; then
tmux kill-pane -t 1
fi
tms "$@"
)
który zabija poprzedni podział, jeśli już istnieje, i pomaga zachować tylko jeden dodatkowy podział przez cały czas.
man tmux | less -p remain-on-exit...