如何使用Cygwin在expect脚本中配置超时?

时间:2015-04-09 06:24:34

标签: linux bash cygwin expect

我正在使用sftp传输一些文件。我的源系统是一个ubuntu系统,而目标是windows。我已经在windows中为sftp和ssh安装了Cygwin软件。我的脚本如下......

# FILE: test1.exp

set sftp_HOST somehost
set sftp_user someuser
set sftp_password somepassword
spawn sftp $sftp_user@$ftp_HOST
expect "*Password:* "
send "$sftp_password\r"
expect "sftp>* "
send "cd files\r"
expect "sftp>* "
send "mput *.xlsm\r"
expect "sftp>* "
send "quit\n"
expect eof

这个脚本运行正常。但在中间一些文件没有正确传输。由于超时,其他命令将从我的shell脚本继续。

我从以下脚本中调用上述期望......

# FILE: testscript.sh

export TELNET_PATH="/home/ist/Desktop/shellfilesscript"
expect $TELNET_PATH/test1.exp
cp *.xlsm /testfolder

例如,运行test1.exp时,cp命令会自动启动并中断expect命令。我无法从以前的帖子中找到任何解决方案,我认为cygwin有一些不同的方法。感谢帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

拥有"无限"超时:set timeout -1