如何在Shell脚本中调用tmux的time命令?
在Shell脚本中触发tmux的时间显示功能
嘿,这个需求我之前刚好折腾过,给你两个实用的方案,看你需求选就行:
方案一:直接调用tmux原生命令(推荐)
其实tmux的Ctrl+B + t快捷键本质上是绑定了display-time命令,咱们完全不用模拟按键,直接在脚本里执行这个命令就行——这样更可靠,不会因为你哪天改了快捷键绑定就失效。
举几个具体例子:
- 如果你的脚本是在tmux会话内部运行的,直接写:
执行后就会和按快捷键一样弹出时间显示。tmux display-time - 如果脚本是在tmux外部运行,需要指定目标会话(比如会话名叫
my_session):
要是你只有一个tmux会话,甚至可以省略tmux display-time -t my_session-t参数,tmux会自动找当前活跃的会话。
另外,默认时间显示几秒就消失了,要是想让它多留一会儿,可以加-d参数设置延迟(单位是毫秒),比如让它显示5秒:
tmux display-time -d 5000
方案二:模拟快捷键操作
要是你非要模拟Ctrl+B + t的按键行为(比如依赖自定义的快捷键绑定逻辑),可以用tmux的send-keys命令来发送按键序列:
- 内部脚本执行:
tmux send-keys C-b t - 外部脚本指定会话:
tmux send-keys -t my_session C-b t
不过这个方案有个小缺点:如果之后你修改了tmux的快捷键绑定(比如把Ctrl+B + t改成了别的),这个脚本就失效了,所以还是优先选方案一更稳妥。
内容的提问来源于stack exchange,提问作者Maverick139
相关产品推荐
相关产品推荐

