免费注册 查看新帖 |

Chinaunix

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

[expect] 请教如果在纯expect 脚本中包含文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-31 15:03 |只看该作者 |倒序浏览
本帖最后由 vdlee 于 2010-06-01 10:07 编辑

比如shell 使用

.  function # 引用文件

纯expect 脚本中, 他是怎么做到的呢。

有一个问题,我是在坛子里面翻到的一个老帖,

#!/bin/sh
expect << EOF
spawn ssh .....
`while read i j; do
echo expect \"$i\"
echo send \"$j\\\r\"
done < expect.txt`
expect eof
EOF

我将命令写在一个 expect.txt文本中,

*#         ifconfig
*#         netstat

这样不会有问题,这里用的是 shell 和  expect 混用,有没有办法只使用 expect 实现呢?

这样如果expect 执行的命令部分需要使用变量该怎么办?
*#         使用 $host $ip 等,这些变量该如何传递expect 脚本内部去?

(不过expect 主要是交互操作哦, 变量可能不可以跨度主机吧?)

论坛徽章:
0
2 [报告]
发表于 2010-05-31 15:46 |只看该作者
你 set 就可以了
eg.
     set host xxxx
     set  ip  xxxx

论坛徽章:
0
3 [报告]
发表于 2010-05-31 17:22 |只看该作者
expect 大牛们出来点拨下撒。

论坛徽章:
0
4 [报告]
发表于 2010-06-01 10:08 |只看该作者
各位仙家都去仙游了吗

论坛徽章:
0
5 [报告]
发表于 2011-02-09 15:48 |只看该作者
#!/usr/bin/expect

if {$argc!=3} {
send_user "Usage: $argv0 {Array IP} {Password} {CMD}\n\n"
exit
}
#log_file ./out
set IP [lindex $argv 0]
set Password [lindex $argv 1]
set CMD [lindex $argv 2]

spawn ssh admin@$IP
#spawn ssh root@$IP
#expect {
#"Are you" { send "yes\n"
#          }
#}
#set timeout 50
expect {
        "assword:" {
                exec sleep 1
                send "${Password}\r"
                        }
        "*continue connecting*" {
                         exec sleep 1
                         send "yes\r"
                         expect  "*Password:" {
                                 exec sleep 1
                                  send "${Password}\r"
                                 }         
                        }
}
#exec sleep 1
#send "${Password}\r"
expect {
"*Password*" { send_user "\n1assword error!\n"
               exit
             }
"*already*" { send_user "\n2:Repeated login!\n"
              exit
            }
"OceanStor: admin>" { send "${CMD}\r"
                    }
}
#send_user "sleep"
#expect "OceanStor: admin>"
#send "${CMD}\r"
#exec sleep 5

expect         "*>"
#send "exit\r"
send "exit\r"
#send "exit\r"
expect "*closed*"
exit
#exec sleep 10
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP