如何切换脚本创建的 tmux 会话

如何切换脚本创建的 tmux 会话

我正在尝试运行一个自动打开tmux会话的脚本,然后运行一些命令,比如打开一些窗口和窗格等。

我尝试使用xdotool,然后我认为最好只使用 tmux 并调用send-keys

#!/bin/bash

SESSIONNAME="Working"     # Set tmux session name
echo "Starting a tmux session"
sleep 2s

if (tmux has-session -t "$SESSIONNAME" 2> /dev/null); then
  echo "Session '$SESSIONNAME' exists."
else
  tmux -u new-session -d -s $SESSIONNAME
  tmux send-keys -t $SESSIONNAME "echo 'hello world'" ENTER
fi

#tmux a
#tmux send-keys -t $SESSIONNAME "echo 'hello'" ENTER
exit 0

该脚本的问题是创建的会话不会自动附加,如果我tmux a在运行某些命令之前尝试调用send-keys,这些命令根本就不会运行。

请问您能否澄清或指导我如何实现该目标?

答案1

如果在 tmux 内,则使用“tmux attachment -t$SESSIONNAME”或“tmux switch-client -t$SESSIONNAME”在脚本末尾附加会话。您可以检查 $TMUX 以查看您是否在里面。

相关内容