expect示例_shell脚本

expect示例_shell脚本

exp文件的编写

#!/usr/bin/expect
set timeout 10
set fname [lindex $argv 0]
set ip [lindex $argv 1]
set dname [lindex $argv 2]
#spawn scp $fname root@$ip:$dname
spawn ssh root@$ip
expect {
         "*yes/no*" { send "yes\n";exp_continue}
         "*password*" { send "aixocm\n";exp_continue}
}
         expect  "*#*" {send "cd /tmp\n"}
         expect "*#*" {send "mkdir /tmp/zlj\n"}
        expect "*#" {send "exit\n"}
expect eof

.sh文件的编写

#!/bin/bash
#
#nmap -n -sT -p22 10.0.10.1-253|egrep  -o '10.0.10.[0-9]{1,3}' >ip.txt
#nmap -n -sT -p22 10.0.10.1-253|egrep  "22/tcp" |awk '{print $2}' >statu.txt

statu=(`cat statu.txt`)

fname=/root/shell/7_1.sh
dname=/tmp

count=0
while read ip
do
        if [ "${statu[$count]}" == "open" ];then
                ./expect1.exp $fname $ip $dname
        fi
        ((count++))
done < ip.txt


如果.sh文件运行时,提示 spawn:command not found

则给.sh文件添加x权限,使用./x.sh的样式运行