다음을 수행하기 위해 tmux 스크립트를 만들려고합니다.
- 첫 번째 매개변수"시작" 또는 "중지"가 필요합니다.
- 두 번째 매개변수"세션 이름"을 가져옵니다.
- 세 번째 매개변수창을 생성하려면 "2개" 또는 "3개"가 필요하거나 없음이 필요합니다.
- 4번째 매개변수"세션 경로"를 사용하십시오.
스크립트 파일
#!/bin/bash
SESSION=$2
if [ $1="start" ] && [ $3="two" ]; then
echo "Starting a session with $3 window pane"
tmux new -session -d -s $SESSION
tmux new-window -t $SESSION:2 -n $3
tmux select-window -t $SESSION:2
tmux split-window -h
tmux attach -t $SESSION
elif [ $1="start" ] && [ $3="three" ]; then
echo "Starting a session with $3 window pane"
tmux new -session -d -s $SESSION
tmux new-window -t $SESSION:3 -n $3
tmux select-window -t $SESSION:3
tmux split-window -h
tmux split-window -h
tmux attach -t $SESSION
else
echo "Starting a session with no window pane"
tmux new -session -d -s $SESSION
tmux new-window -t $SESSION:3 -n $3
tmux select-window -t $SESSION:3
tmux attach -t $SESSION
fi
2개의 창으로 tmux 세션을 만들 수 있지만 3개의 창으로 세션을 만들 수는 없습니다. 합격하면 elif를 실행하나요?
script.sh start three three
세션 경로 네 번째 매개변수의 올바른 구문입니까?
tmux send-keys $4 C-m
답변1
이렇게 하면 2개 또는 3개의 창을 만드는 문제가 해결됩니다.
#!/bin/bash
SESSION=$2
case $1 in
start)
echo "starting session"
if [ $3 == "two" ]; then
echo "Creating 2 window pane"
tmux new -session -d -s $SESSION
tmux new-window -t $SESSION:2 -n 'two'
tmux select-window -t $SESSION:2
tmux split-window -h
tmux attach -t $SESSION
elif [ $3 == "three" ]; then
echo "Creating 3 window pane"
tmux new -session -d -s $SESSION
tmux new-window -t $SESSION:3 -n 'three'
tmux select-window -t $SESSION:3
tmux split-window -h
tmux split-window -h
tmux attach -t $SESSION
fi
;;
stop)
echo "stop session"
;;
*)
echo "Wooot!"
;;
esac
네 번째 매개변수에 대해 다음을 시도할 수 있습니다.
tmux send-keys "cd ${4}" Enter