0

我想创建一个保存在我的 bashrc 文件中的别名,以通过 SSH 登录到远程 MySQL 数据库。假设我无法在我正在通过 SSH 连接的远程计算机上添加/更改任何文件。这是相关的代码。

function ssh_mysql {
  echo "SSHing to $server"
  ssh -t -t $suser@$server <<ENDSSH
    eval "mysql -h "$host" -u $user -p $pass $db"
ENDSSH
}
alias wt_mysql=ssh_mysql

问题:在终端中输入“wt_mysql”作为别名 SSH 并正常登录 MySQL。但是当尝试在 MySQL 提示符下输入任何命令/查询/等时,我提交的内容都没有被执行/运行。包括“退出”命令。我必须按 ctrl C 才能回到我的本地终端。虽然它有点超出我的理解,但我相信问题与这个主题有关, Terminating SSH session executed by bash script
How can I make sure that mysql and any following commands are executed远程?
谢谢!

4

1 回答 1

3

我不明白你为什么要使用eval(或者你为什么要通过-t两次开关)。

我希望这个 ssh 命令能做你想做的事:

ssh -t $suser@$server "mysql -h '$host' -u $user -p $pass $db"
于 2013-05-02T07:34:10.963 回答