我想创建一个保存在我的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提示符下输入任何命令/查询/等时,我提交的内容都没有执行/跑。包括'exit'命令。我必须ctrl C才能回到我的本地终端。虽然它有点超出我的理解,我相信这个问题与这个主题有关,Terminating SSH session executed by bash script
如何确保远程执行mysql和任何后续命令?
谢谢!
答案 0 :(得分:3)
我不明白您为何使用eval
(或者为什么要将-t
开关传递两次)。
我希望这个ssh命令能够做你想做的事情:
ssh -t $suser@$server "mysql -h '$host' -u $user -p $pass $db"