我在 zsh 脚本中有这些命令:
tmux select-pane -t 0
tmux send-keys 'repeat 5; do print This is a test; sleep 1; done' Enter
tmux 的发送键本身只是将字符串发送到窗格,但不知道其状态string
- 退出代码。
我怎么知道什么时候repeat 5; do print This is a test; sleep 1; done
完成?
repeat 5; do print This is a test; sleep 1; done
编辑:我遇到的问题是影响下一个命令的结果- 这意味着我自己计算了在执行下一个命令之前消耗并放置等待命令完成的send-keys
时间。repeat 5; do print This is a test; sleep 1; done
sleep <seconds_repeat_consume>
repeat
send-keys
答案1
获取实际的退出代码可能很困难。但看起来你只需要知道你的命令已完成,在这种情况下你可以使用tmux wait-for
。
像这样的东西:
tmux select-pane -t 0
tmux send-keys \
'repeat 5; do print This is a test; sleep 1; done; tmux wait-for -S 0' Enter
tmux wait-for 0
echo 'Loop finished'
这将导致tmux wait-for 0
挂起,直到 tmux 到达该tmux wait-for -S 0
部分。