Chinaunix
标题:
expect如何让命令执行成功后再执行下面的动作?
[打印本页]
作者:
panwei789
时间:
2007-09-16 20:08
标题:
expect如何让命令执行成功后再执行下面的动作?
要从测试环境下拷索引到线上服务器上,可是expect不等拷完全部索引就开始执行后面的命令,导致缺失部分索引,请各位提供一个好的解决办法,不用sleep,谢谢。
spawn cp -r /index/ /backup
expect "*$"
.....................
spawn ssh -l user ip
expect "*password:"
send "passwd\r"
expect "Last*"
send "su - root\r"
expect "Password:"
send "password\r"
expect "*$"
send "cp -r /backup/index /product/index\r"
expect eof
interact
作者:
waker
时间:
2007-09-17 08:17
解决你自己不是已经用红色标出来了么?expect一个提示符
作者:
panwei789
时间:
2007-09-17 09:35
我都试过,不起作用,cp命令都没有执行完毕,600多M的索引总是拷不全,幸亏没放到线上去,要不然就死翘翘了
[
本帖最后由 panwei789 于 2007-9-17 09:42 编辑
]
作者:
waker
时间:
2007-09-17 09:42
可能cp的输出中有$字符,使用expect -d,看看究竟发生了什么
或使用autoexpect自动生成一个脚本,和自己的对比一下看看有什么不同
作者:
panwei789
时间:
2007-09-18 11:48
恩,一会试试看
作者:
zhangstones
时间:
2007-10-06 12:26
尝试sleep 1,如下:
spawn cp -r /index/ /backup
sleep 1
expect "*$"
.....................
spawn ssh -l user ip
expect "*password:"
send "passwd\r"
expect "Last*"
send "su - root\r"
expect "Password:"
send "password\r"
expect "*$"
send "cp -r /backup/index /product/index\r"
expect eof
interact
作者:
huolefo
时间:
2011-09-23 10:45
回复
4#
waker
我的脚本也是先生成 expect的。这个expect -d,怎么执行的,谢谢
作者:
fangtong2008
时间:
2011-09-23 12:07
autoexpect 如何自动生成脚本?
作者:
itssolei
时间:
2013-07-15 16:26
expect默认超时时间10s,你拷贝文件需要多长时间?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2