Tmux:检查由发送键发送的命令的退出代码

Tmux:检查由发送键发送的命令的退出代码

我在 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; donesleep <seconds_repeat_consume>repeatsend-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部分。

相关内容