Ogni riquadro di tmux è un'interfaccia per un singolo pty (pseudo tty). Le finestre non divise hanno un unico riquadro; le finestre divise hanno più riquadri.
tmux non fornisce un modo per aggiungere ulteriori processi a un riquadro una volta che è stato avviato con il suo comando iniziale. Spetta al processo del comando iniziale (di solito una shell) fornire il controllo del lavoro 1 per quel terminale.
Se vuoi bloccare tutto ciò che è attualmente in esecuzione nel riquadro, puoi usare respawn-pane -kper eliminare il comando esistente e sostituirlo con uno nuovo (ad es respawn-pane -t sessionname:0.4 -k 'some -new command'.).
Ma, se si desidera mantenere tutto ciò che è attualmente in esecuzione nel riquadro, potrebbe non esserci un'opzione migliore con cui semplicemente "digitarlo" send-keys.
Potresti copiarlo in questo modo (allegalo per ultimo, perché altrimenti lo script aspetterà solo che ti stacchi prima di continuare):
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"
Si noti che, al send-keyscomando, è necessario digitare effettivamente le lettere
E n t e r, per indicare tmuxdi inviare una chiave di nuova riga alla finestra. (Naturalmente, ogni comando termina con il Entertasto.)
1 Il controllo del lavoro è l'arbitrato tra più gruppi di processi di una singola sessione che utilizza tty come terminale di controllo. Vale a dire, il Ctrl+ Zsospendere chiave, e le jobs, fge bgshell comandi.
#{session_name}:#{window_index}.#{pane_index}mia riga di stato in modo da poter vedere rapidamente a quale riquadro inviare i comandi.