我在shell上使用ssh在远程服务器上运行一个简单的命令。
我目前已登录myHost01
并且我正在myHost02
上运行此命令
预期结果为this is a test myHost02
。但是,我得到this is a test myHost01
这是我的命令
sshpass -p root ssh -q root@127.0.0.2 "echo this is a test `hostname`"
我不知道为什么它从服务器的主机名中运行命令!!!
当我运行这个
时,也是值得注意的sshpass -p root ssh -q root@127.0.0.2 "hostname"
我得到myHost02
(这是正确的输出)
答案 0 :(得分:3)
将命令用单引号传递,如下所示。双引号使shell在就地执行命令替换hostname
(本地)并将结果字符串this is a test myHost01
传递给ssh
sshpass -p root ssh -q root@127.0.0.2 'echo this is a test `hostname`'