TMUX 3.2a中send-keys命令执行窗格错误问题排查
Tmux窗格命名脚本问题解决方法
你当前的核心问题是误用了send-keys来执行窗格命名操作——send-keys是用来给窗格的shell发送输入的,但tmux select-pane -T本身就是Tmux的直接操作命令,不需要通过shell转发,直接执行就能精准指定目标窗格。
原脚本的错误在于:通过send-keys把命名命令发送到目标窗格的shell后,该命令执行时默认操作的是当前活跃窗格,而非你指定的目标窗格,导致命名失效或错位。
修正后的脚本
#!/bin/sh session="testing" # 初始化Tmux会话 tmux start-server tmux new-session -d -s $session tmux set pane-border-status top # 直接为窗格0命名 tmux select-pane -t 0 -T "Unit/Alarm1" # 水平拆分窗格0(原窗格占67%,新窗格占剩余33%),并为新窗格命名 tmux splitw -h -p 67 tmux select-pane -t 1 -T "Unit/Alarm2" # 附加到目标会话 tmux attach-session -t $session
补充说明
如果后续需要在窗格中执行shell命令(比如启动程序、切换目录),再使用send-keys才是正确用法,例如:
# 向窗格0发送切换目录并启动服务的命令 tmux send-keys -t 0 "cd /your/project/path && ./start_service.sh" C-m
内容的提问来源于stack exchange,提问作者Zach C
相关产品推荐
相关产品推荐

