以下を行うためにtmuxスクリプトを作成しようとしています。
- 最初のパラメータ「開始」または「停止」が必要です。
- 2番目のパラメータ「セッション名」を取得します。
- 3番目のパラメータウィンドウを作成するには、「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
セッションパスの4番目のパラメータの正しい構文ですか?
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
4番目のパラメータに対して次のことを試すことができます。
tmux send-keys "cd ${4}" Enter