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
명령을 사용할 수 있습니다.