Risposte:
Uso:
tmux split-window "shell command"
Il split-windowcomando ha la sintassi seguente:
split-window [-dhvP] [-c start-directory] [-l size | -p percentage] [-t target-pane] [shell-command] [-F format]
(dalla man tmuxsezione "Finestre e riquadri"). Si noti che l'ordine è importante: il comando deve venire dopo una qualsiasi di quelle opzioni precedenti che appaiono e deve essere un singolo argomento, quindi è necessario citarlo se ha spazi.
Per comandi come ping -cquello terminano rapidamente, puoi prima impostare l' remain-on-exitopzione:
tmux set-option remain-on-exit on
tmux split-window 'ping -c 3 127.0.0.1'
Il riquadro rimarrà aperto al pingtermine, ma sarà contrassegnato come "morto" fino a quando non verrà chiuso manualmente.
Se non si desidera modificare le opzioni generali, esiste un altro approccio. Il comando viene eseguito con sh -ce puoi sfruttarlo per rendere la finestra viva alla fine:
tmux split-window 'ping -c 3 127.0.0.1 ; read'
Qui si utilizza il readcomando shell per attendere una newline di input dell'utente al termine del comando principale. In questo caso, l'output del comando rimarrà finché non si preme Enternel riquadro, quindi si chiuderà automaticamente.
remain-on-exito usa cmd ; read.
bash --rcfile
Questa tecnica apre una nuova shell, esegue i comandi e ti lascia lì al termine dei comandi:
tmux-split-cmd() ( tmux split-window -dh -t $TMUX_PANE "bash --rcfile <(echo '. ~/.bashrc;$*')" )
tmux-split-cmd 'cd; pwd; ping google.com'
O se il comando non ha caratteri terminali speciali come ;solo:
tmux-split-cmd ping google.com
Questo utilizza:
--rcfile: Come invocare bash, eseguire comandi all'interno della nuova shell e quindi restituire il controllo all'utente? | Stack OverflowTMUX_PANE: Come dividere la finestra che ha eseguito il comando "tmux split-window" invece di quello corrente?Un'altra variante interessante è:
tmux-split-cmd-uniq() (
if [ "$(tmux list-panes | wc -l | cut -d' ' -f1)" -ne 1 ]; then
tmux kill-pane -t 1
fi
tms "$@"
)
che uccide la divisione precedente se esiste già e aiuta a mantenere solo una divisione aggiuntiva in ogni momento.
man tmux | less -p remain-on-exit...