shell本地脚本调用远程脚本,当远程脚本执行完再继续执行本地脚本 5

比如本地脚本里,如下:sshuser@ip"sh1"ls-l远程机器上的脚本1预计要执行5分钟.如果要实现,当远程机器上的脚本1执行完成之后,再继续执行本地的ls-l,那... 比如本地脚本里,如下:
ssh user@ip "sh 1"
ls -l
远程机器上的脚本1预计要执行5分钟.
如果要实现,当远程机器上的脚本1执行完成之后,再继续执行本地的ls-l,那应该怎么写.
不用sleep的方法.求大神解答下。
展开
 我来答
ace_fei
推荐于2018-05-14 · TA获得超过2013个赞
知道小有建树答主
回答量:734
采纳率:100%
帮助的人:724万
展开全部
#!/bin/bash

#调用expect脚本执行远程sh
expect -c '
set timeout 10000
spawn ssh usr@ip
expect {
        "yes/no"  {send "yes\r"; exp_continue}
        "*assword"  {send "passwd\r"}
    }
expect "#"
send "sh 1\r"
expect "#"
'
echo
ls -l

其中timeout时间需要设置足够长,不然会连接超时断掉。

或者你配置了rsh,可以把上面的expect过程替换成rsh [Host] [-l UserName] [-n] [Command]

可兴修mZ
2013-11-14 · 超过31用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:53.1万
展开全部
只要你远程的脚本1里面没有通过 nohup 调用,这个脚本本身就会要求 1执行完成后才能执行 ls -l指令,无需sleep
你可以这样测试
ssh user@IP "sleep 2;echo 1"
echo 2
你可以看到显示结果一定是
1
2
怎么样,给分吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QICHUAN_ZHANG
2013-11-14 · TA获得超过199个赞
知道小有建树答主
回答量:1646
采纳率:0%
帮助的人:553万
展开全部
兄弟,如果不是你学校的问题的话, 我可以为你解决。wo jiu shi Linux da神。 你yong baidu 私信我吧,然后zai lian xi wo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式