免费注册 查看新帖 |

Chinaunix

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

[文本处理] shell中调用expect传值问题 [复制链接]

论坛徽章:
1
水瓶座
日期:2014-12-25 11:15:10
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-28 10:36 |只看该作者 |倒序浏览
  1. [root@localhost expect]# cat f.sh
  2. #!/bin/sh
  3. while read i j
  4. do
  5. expect <<EOF
  6. set ip $i
  7. set password $j
  8. set timeout 3
  9. spawn ssh root@$ip
  10. expect {
  11. "*yes/no" {send "yes\r";exp_continue}
  12. "*Password:" {send "$password\r"}
  13. }
  14. expect eof
  15. EOF
  16. done <ip.txt
复制代码
执行后报错
  1. [root@localhost expect]# ./f.sh
  2. spawn ssh root@
  3. ssh: Could not resolve hostname : Name or service not known
  4. expect: spawn id exp4 not open
  5.     while executing
复制代码
预计是$i,$j的值没有传入进去

这个传值要怎么搞?

如果用单个文件直接写明ip的话是可以正常运行的
  1. [root@localhost expect]# cat e.exp
  2. #!/usr/bin/expect -f
  3. set ip 192.168.1.212
  4. set password qwe123
  5. set timeout 10
  6. spawn ssh root@$ip
  7. expect {
  8. "*yes/no" {send "yes\r";exp_continue}
  9. "*Password:" {send "$password\r"}
  10. }
  11. interact
  12. [root@localhost expect]#
复制代码

论坛徽章:
1
天蝎座
日期:2013-08-22 15:14:44
2 [报告]
发表于 2013-08-28 10:51 |只看该作者
本帖最后由 guogang225 于 2013-08-28 10:59 编辑

回复 1# 水底游
  1. #!/bin/sh
  2. while read ip password
  3. do
  4. expect <<EOF
  5. set timeout 3
  6. spawn ssh root@"$ip"
  7. expect {
  8. "*yes/no" {send "yes\r";exp_continue}
  9. "*Password:" {send "$password\r"}
  10. }
  11. expect eof
  12. EOF
  13. done <ip.txt
复制代码

论坛徽章:
1
水瓶座
日期:2014-12-25 11:15:10
3 [报告]
发表于 2013-08-28 11:08 |只看该作者
我的脚本那么写,为什么不行的?参数转了两次不行还是什么原因的?
回复 2# guogang225


   

论坛徽章:
0
4 [报告]
发表于 2013-08-28 14:10 |只看该作者
本帖最后由 wxq1090691643 于 2013-08-28 14:12 编辑
  1. #!/bin/sh
  2. while read ip passwd
  3. do
  4. expect <<EOF
  5. set timeout 3
  6. spawn ssh root@$ip
  7. expect {
  8. "yes/no" { send "yes\r";exp_continue }
  9. "password:" { send "$passwd\r" }
  10. }
  11. expect eof
  12. EOF
  13. done <ip.txt
复制代码

论坛徽章:
1
天蝎座
日期:2013-08-22 15:14:44
5 [报告]
发表于 2013-08-28 17:46 |只看该作者
回复 3# 水底游


    set变量在here document里不生效
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP