user208145 Asked: 2018-06-19 15:07:47 +0800 CST2018-06-19 15:07:47 +0800 CST 2018-06-19 15:07:47 +0800 CST tmux 自动单步执行打开的窗口 772 在我的 VPN 服务器上,我有一些在单独的窗口中运行的脚本,我想每隔几秒逐步执行一次它们,就像下面的 GIF 一样。 是否存在现有的 tmux 绑定或我可以创建的绑定,当激活时,将逐步通过 tmux 会话的打开窗口(而不是窗格)?即使它是循环执行下面的击键的各种宏也可以。我还想使用相同的绑定来停止逐步通过窗口。 Ctrl+ b, n, (等待 3 秒) linux tmux 1 个回答 Voted Best Answer meuh 2018-06-21T02:04:55+08:002018-06-21T02:04:55+08:00 您可以编写自己的小 shell 脚本来执行此操作。例如,mytmux在您的某处创建文件PATH并使其可执行chmod +x mytmux,内容如下: #!/bin/bash rotate(){ file=/tmp/mytmux.$session if [ -f "$file" ] then rm "$file" else touch "$file" while [ -f "$file" ] && tmux next-window -t "$session" do sleep 3 done fi } case $1 in -rotate)shift session=${1?session name} rotate ;; esac 我让它接受一个参数-rotate,以防您稍后添加其他帮助程序。为您~/.tmux.conf添加合适的绑定,例如: bind-key C run-shell -b 'mytmux -rotate #{session_name}' 是在-b后台运行。第一次键入时control-bC,tmp 文件不存在,因此 while 循环next-window每 3 秒运行一次命令。第二次删除 tmp 文件,第一个脚本将停止。您应该等待 3 秒再重新开始,否则您可能会运行 2 个脚本!
您可以编写自己的小 shell 脚本来执行此操作。例如,
mytmux
在您的某处创建文件PATH
并使其可执行chmod +x mytmux
,内容如下:我让它接受一个参数
-rotate
,以防您稍后添加其他帮助程序。为您~/.tmux.conf
添加合适的绑定,例如:是在
-b
后台运行。第一次键入时control-bC,tmp 文件不存在,因此 while 循环next-window
每 3 秒运行一次命令。第二次删除 tmp 文件,第一个脚本将停止。您应该等待 3 秒再重新开始,否则您可能会运行 2 个脚本!