我正在尝试创建一个 tmux 脚本来执行以下操作
- 第一个参数需要“开始”或“停止”
- 第二个参数采用“会话名称”
- 第三个参数需要“两个”或“三个”或无,用于创建窗格
- 第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