指定したウィンドウを作成できません。

指定したウィンドウを作成できません。

以下を行うために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

おすすめ記事