Cada panel tmux es una interfaz para una sola pty (pseudo tty). Las ventanas no divididas tienen un solo panel; Las ventanas divididas tienen múltiples paneles.
tmux no proporciona una forma de agregar procesos adicionales a un panel una vez que se ha iniciado con su comando inicial. Depende del proceso de ese comando inicial (generalmente un shell) suministrar el control de trabajo 1 para ese terminal.
Si desea golpear lo que se está ejecutando actualmente en el panel, puede usarlo respawn-pane -k
para eliminar el comando existente y reemplazarlo por uno nuevo (por ejemplo, respawn-pane -t sessionname:0.4 -k 'some -new command'
).
Pero, si desea mantener lo que se está ejecutando actualmente en el panel, entonces puede que no haya una mejor opción que simplemente "escribir" send-keys
.
Puede escribirlo de la siguiente manera (adjunte el último, porque de lo contrario el script solo esperará a que se separe antes de continuar):
session=whatever
window=${session}:0
pane=${window}.4
tmux send-keys -t "$pane" C-z 'some -new command' Enter
tmux select-pane -t "$pane"
tmux select-window -t "$window"
tmux attach-session -t "$session"
Tenga en cuenta que, en el send-keys
comando, debe escribir las letras
E n t e rpara indicar tmux
que envíe una tecla de nueva línea a la ventana. (Naturalmente, cada comando termina con la Entertecla).
1 El control del trabajo es el arbitraje entre múltiples grupos de procesos de una sola sesión que usa el tty como su terminal de control. Es decir, la Ctrl+ Ztecla para suspender, y los jobs
, fg
y bg
la cáscara comandos.
#{session_name}:#{window_index}.#{pane_index}
mi línea de estado para poder ver rápidamente a qué panel enviar comandos.