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 -k
per 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-keys
comando, è necessario digitare effettivamente le lettere
E n t e r, per indicare tmux
di 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
, fg
e bg
shell comandi.
#{session_name}:#{window_index}.#{pane_index}
mia riga di stato in modo da poter vedere rapidamente a quale riquadro inviare i comandi.