如何在远程计算机上启动 tmux 会话并在所述 tmux 会话中运行命令

如何在远程计算机上启动 tmux 会话并在所述 tmux 会话中运行命令

我有以下代码,已经使用多年,但最近在升级系统时(从 Ubuntu 14.04 到 16.04)出现了故障

_SNAME=$1-$2

TERM=xterm ssh x.y.z.com -t tmux new-session -A -s $_SNAME \'ssh $1\'

这对我来说是:

  1. 如果 tmux 会话存在,则连接到它
  2. 如果 tmux 会话不存在,请创建一个新的 tmux 会话并通过 SSH 连接到我的远程服务器

然而,升级我的操作系统后,它坏了,现在我只能得到[exited].

问题似乎是当我指定在 tmux 会话(\'ssh $1\'部分)中运行的命令时

tmux 是否改变了语法?我找到了另一种方法来做到这一点tmux send-keys,但它远不那么干净

答案1

你的引用(可能)是混乱的。可能,因为你的命令似乎对我有用。不要发送单引号,只需确保命令被引用即可:

_SNAME="$1-$2"
TERM=xterm ssh -t x.y.z.com tmux new-session -A -s "$_SNAME" "ssh $1"

您可能会遇到的情况是'ssh找不到该命令。

您也可以尝试使用"'ssh $1'"作为最后一个参数,但这相当于您已经在尝试的内容。

相关内容