远程交互式shell

安装软件

yum install expect
脚本语言
"注意:空格的问题"
    #!/usr/bin/expect
    set timeout 30(-1:永不过期)
    spawn ssh 用户名@IP "执行的操作"
    expect "第一种情况" { 
                操作:send "需要发送的信息\r" 
                expect "子情况"
                子操作:send "需要发送的信息\r"
                } "第二种情况" { 
                操作:send "需要发送的信息\r"
                }
    interact        ---执行完成后把控制台交个当前bash
    $argv           --获取变量
嵌套:
    #!/bin/bash
    expect << EOF(end of file)
    ...(expect脚本语言)
    expect eof
    EOF

一个实例

#!/bin/bash
for IP in 100 1 2 3
do
    IPADDR=192.168.0.$IP
    expect << EOF
    spawn ssh root@$IPADDR "sed -i '1i nameserver 8.8.8.8' /etc/resolv.conf"
    expect "(yes/no)?" { 
        send "yes\r"
        expect "passwd:"
        send "password\r"
    } expect "passwd:" { send "password\r" }
    expect eof
EOF         --结束expect解释器,必须和do缩进一样
done