tmux 将在当前会话下创建新窗口(使用绑定键 c)。我想在创建窗口时选择会话。
该脚本在直接运行时工作正常,但在使用 bind key 从 tmux 调用时失败
bind-key C run-shell '~/tmux/tmux.window.sh'
。输出是'tmux/tmux.window.sh' returned 1
#!/bin/sh
export PATH=$PATH:/usr/local/bin
# present menu for user to choose which workspace to open
PS3="option: "
options=($(tmux list-sessions -F "#S") "in new session" )
select opt in "${options[@]}"
do
case $opt in
"in new session")
read -p "new session: " SESSION_NAME
TMUX= tmux new -s "$SESSION_NAME"
break
;;
*)
tmux new-window -t ${opt}:
tmux attach-session -t ${opt}
break
;;
esac
done
答案1
您不能使用read
fromrun-shell
因为它没有标准输入。您可以在窗格中运行脚本(使用split-window
)。或者,如果您使用 tmux 3.1,您可以生成一个菜单,display-menu
或者如果使用 3.2-rc 或 master 使用弹出窗口display-popup
。
如果您想一起更改会话、窗口和窗格,您可以使用该switch-client
命令。