Если вам действительно нужно использовать tmux, и ваши команды не являются интерактивными, то вы можете добавить вторую команду к первой команде, которая каким-то образом сигнализирует о завершении первой команды. Простой способ сделать это с помощью встроенной команды tmux - wait-for
с помощью опции -L channel
блокировать и -U channel
разблокировать. Вы можете иметь много произвольных каналов. Когда вы блокируете канал, дальнейшие попытки заблокировать блокируют до разблокировки.
Вот пример:
tmux wait-for -L my1\; \ send-keys 'sleep 5' Enter 'tmux wait-for -U my1' Enter\; \ wait-for -L my1
Это блокирует канал my1
, отправляет команду sleep 5
оболочке, затем сразу же следует команда tmux wait-for
unlock shell, затем пытается снова получить блокировку, поэтому она блокируется.
Через 5 секунд сон завершается, оболочка выполняет разблокировку tmux, и теперь блокировка может быть снята, и только после этого возвращается вышеприведенная команда tmux.
Чтобы вернуться к нормальному состоянию, wait-for -U
теперь нужно выполнить a, возможно, выполнив другую send-keys ... wait-for -U ...
комбинированную команду, как указано выше.