免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1699 | 回复: 4
打印 上一主题 下一主题

expect 脚本问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-23 14:26 |只看该作者 |倒序浏览

  1. proc do_console_login {login pass} {

  2.         set timeout 5
  3.         set done 1
  4. #        set timeout_case 0

  5.         while { $done } {
  6.                 expect {
  7.                         "(yes/no)?" {
  8.                                         send "yes\n"
  9.                                         expect "assword:"
  10.                                         send "$pass\n"
  11.                                         incr done
  12.                                         send_user "Login Successfully...\n"
  13.                         }
  14.                         "*assword:" {
  15.                                         send "$pass\n"
  16.                                         incr done
  17.                                         send_user "Login Successfully...\n"
  18.                                 }
  19. #                       timeout {
  20. #                                switch -- $timeout_case {
  21. #                                        0 { send "\n" }
  22. #                                        1 {
  23. #                                                send_user "Send a return...\n"
  24. #                                                send "\n"
  25. #                                        }
  26. #                                        2 {
  27. #                                                puts stderr "Login time out...\n"
  28. #                                                exit 1
  29. #                                        }
  30. #                                }
  31. #                                incr timeout_case
  32. #                        }
  33. #                }
  34.                 }
  35.         }
  36. }

  37. proc do_exec_cmd {} {
  38.         expect ":~>"
  39.         send "uname -a\n"
  40.         expect ":~>"
  41.         send "exit\n"
  42.         expect eof
  43. }
  44. if { $argc !=3 } {
  45. puts stderr "Usage: command host-address username host-password\n"
  46. exit 1
  47. }


  48. set host [ lindex $argv 0 ]

  49. set name [ lindex $argv 1 ]

  50. set password [ lindex $argv 2 ]

  51. spawn ssh $name@$host

  52. do_console_login $name $password
  53. do_exec_cmd

  54. close

  55. exit 0
复制代码




这是一个远程登录到终端执行SHELL 的expect程序,不知道为什么提示proc do_console_login无法执行,请帮忙改下

如果我要是用expect 远程登录到服务器上,执行编译安装软件,是不是得把timeout设置的时间长一点啊,才能阻止超时问题

论坛徽章:
0
2 [报告]
发表于 2009-09-23 23:37 |只看该作者
yes/no "/"是不是需要写成\/

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2009-09-24 08:12 |只看该作者
\n ==> \r

论坛徽章:
0
4 [报告]
发表于 2009-09-24 14:21 |只看该作者
还是不行提示第一个proc无法运行,括号处有问题
invalid command name "}"
    while executing
"}"

论坛徽章:
0
5 [报告]
发表于 2009-09-24 17:12 |只看该作者

回复 #4 jiean 的帖子

多了个}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP