tmux 1.8 introduziu o comando wait-for
que pode ajudar você a fazer o que quiser:
time tmux new-window -t p12346 'echo foo;sleep 10;tmux wait-for -S p12346-neww-done' \; \
wait-for p12346-neww-done
O nome do "canal" ( p12346-neww-done
no exemplo acima) pode ser o que você quiser (desde que seja o mesmo em ambos os lugares; se você prevê várias invocações potencialmente simultâneas, provavelmente também desejará usar um valor único para cada invocação). A parte importante é que você “espera” o sinal após o comando new-window
(como parte do mesmo comando tmux , portanto, o ponto e vírgula escapado: tmux precisa processe-o, não o shell) e envie o sinal como o último passo do comando da janela.
Se você precisa ser um pouco mais robusto contra a sua sequência de comandos abortando de uma maneira feia ou inconveniente, então você pode tentar usar uma armadilha shell para enviar o sinal (rearranjado um pouco para legibilidade (?)):
time \
tmux new-window -t p12346 '
trap "tmux wait-for -S p12346-neww-done" 0
echo foo
sleep 10
' \; wait-for p12346-neww-done