tmuxは現在のセッションの下に新しいウィンドウを作成します(キーバインディングcを使用)。ウィンドウを作成するときにセッションを選択したいと思います。
スクリプトは直接実行すると正常に動作しますが、バインドキーを使用して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
fromは使用できません。run-shell
ウィンドウからスクリプトを実行できます(使用split-window
)。または、tmux 3.1を使用している場合はメニューを作成し、display-menu
3.2-rcまたはmasterを使用している場合はポップアップを使用できますdisplay-popup
。
セッション、ウィンドウ、ペインをすべて一度に変更したい場合は、このswitch-client
コマンドを使用できます。