【发布时间】:2019-11-27 08:31:32
【问题描述】:
我有不同 IP 的不同服务器,我可以在任何服务器上 ssh 并保持我的数据库完整(我不知道如何,我只是一个用户)。 我已经编写了一个脚本,使用 ssh 在我在第一台服务器的同一目录中从一台服务器移动到另一台服务器。
在这里你可以看到最终的命令,如果我输入就会起作用:
ssh -X usr@192.168.1.xyz -t 'cd /home/usr/regression && exec /bin/csh'
现在这里是小脚本的一部分:
set path = $PWD
set user = $1
set cmd = "ssh -X $user@192.168.$ip3.$ip4 -t 'cd $path && exec $SHELL'"
echo $cmd;
$cmd;
既然是 csh/tcsh 脚本,我只想运行
$cmd
命令,但它给出了这个消息:
ssh:找不到命令。
如果我复制、粘贴并运行我得到的最终命令:
echo "$cmd"
喜欢:
ssh -X usr@192.168.1.xyz -t 'cd /home/usr/regression && exec /bin/csh'
然后它就可以正常工作了。
【问题讨论】:
-
似乎应该可以工作。您是否仅用一个裸露的
$cmd(没有尾随;)尝试过?但是,它如何与192.16.1.xyz一起工作;-?祝你好运。 -
@shellter 我没有使用;在最后一个命令 "$cmd" ......xyz 只是例如它可以通过任何数字 210... :-) Wumpus Q. Wumbley 解决了这个问题,它是路径变量。
-
是的,我看到我输入了;与 $cmd。但我没有在我的脚本中使用它。由于我的脚本中此 $cmd 之前有 echo 语句......
标签: linux shell ssh command-line csh