日期:2014-05-16  浏览次数:20774 次

请问一个shell脚本的问题
想从一台linux A上ssh到另外一台linux B上,然后做一些事情,写了以下脚本
#!/bin/bash

ssh root@B

cd /opt

以上执行的话,虽然登录到了B服务器上,但是并没有进入到/opt目录下。
当exit的时候,发现进入了A的/opt目录。

请问如果我想ssh到B后,再进入B的opt目录的话,应该怎么写这段脚本呢?谢谢。



------解决方案--------------------
写在一行里面呢

ssh root@B cd /opt
------解决方案--------------------
貌似这应该分别属于两个不同的进程吧:ssh、bash
bash 仅是创建了子进程 ssh
bash 本身的脚本还是执行在 bash 本身的进程中吧

------解决方案--------------------
直接写一行,结果就是 3 楼的情况,是会执行并结束的。这就是 ssh 的一个用法。
如果lz有什么想法呢?是做一个登录脚本再执行一些命令,不需要交互的话,就是用 ssh root@B command 的方法呀;如果要交互,那就登录后手工处理呗,另外用 expect 也是一个主意。

按 lz 的写法:
C/C++ code

#!/bin/bash
ssh root@B
cd /opt