基于 wiki.ubuntuusers.de/tmux/ 上的示例,通过从脚本 tmux.sh 启动 tmux 来嵌套 tmux 会话

基于 wiki.ubuntuusers.de/tmux/ 上的示例,通过从脚本 tmux.sh 启动 tmux 来嵌套 tmux 会话

我使用了 tmux.sh 示例https://wiki.ubuntuusers.de/tmux/#Bedienung。现在,每次启动“tmux”时,我都会收到一条消息“会话应小心嵌套,取消设置 $TMUX 以强制”。但据我了解, tmux 在这种情况下并不嵌套。

我的 tmux.sh 现在看起来如下:

#!/bin/bash
SESSION=main
#tmux="tmux -2 -f ~/.tmux.conf"
tmux="tmux -2"

# if the session is already running, just attach to it.
$tmux has-session -t $SESSION
if [ $? -eq 0 ]; then
# echo "Session $SESSION already exists. Attaching."
  sleep 1
  $tmux attach -t $SESSION
  exit 0;
else
# create a new session, named $SESSION, and detach from it
  $tmux new-session     -n Werkbank -d  -s $SESSION
  $tmux split-window    -h              -t $SESSION:1
  $tmux new-window      -n "SysA|SysB"  -t $SESSION:2 'ssh A'
  $tmux split-window    -h              -t $SESSION:2 'ssh B'
  $tmux new-window      -n "GwA|GwB"    -t $SESSION:3
  $tmux split-window    -h              -t $SESSION:3
  $tmux select-window                   -t $SESSION:1
  $tmux attach                          -t $SESSION
fi

答案1

将以下内容添加到脚本的开头应该可以防止此类错误:

 # If script is run inside tmux, exit without doing anything
 if [[ -n $TMUX ]]; then
     echo "Nested tmux sessions not supported!"
     exit 0
 fi

相关内容