expect 读取文件循环执行

假设文件内容为 IP 端口,一行一对,空格分隔。可以试试如下代码:

#!/usr/bin/expect --

set fid [open 文件名 r]
while {[gets $fid line] >= 0} {
    set ip   [lindex $line 0]
    set port [lindex $line 1]

    puts "IP: $ip, Port: $port\n"
}
close $fid

复制代码

回复 5# seesea2517

#!/usr/bin/expect --
set UPLOADADR /root/file
set FID [open ${UPLOADADR} r]
set FZIP [lindex $argv 0]

while { [gets $FID line] >= 0 } {
        set IP [lindex $line 0]
        set PORT [lindex $line 1]
        set PASSWD [lindex $line 2]
        puts "IP: $IP, Port $PORT, password $PASSWD"
        spawn ssh ${IP} -p ${PORT}
        expect "password: " { send "${PASSWD}\r" }
        expect "#" { send "sh ${UPLOADADR} ${FZIP}\r" }
        expect "ename: " { send "A\r" }
        sleep 2
}

嗯,按照你的尝试过了没有问题。楼上的封装,我还没试过,不过这个脚本 本来就要调用远程的shell脚本。这样应该足够了

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4076408&page=1#pid23839368

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值