expect 帮你进行交互

expect 帮你进行交互

[root@vh01 script]# rpm -q expect
[root@vh01 script]# yum -y install expect
[root@vh01 script]# rpm -q expect
expect-5.44.1.15-5.el6_4.x86_64


[root@vh01 script]# vim expect.sh
#!/usr/bin/expect
set timeout 60
spawn ssh 192.168.4.2
expect password: {send "Taren1\r"}
expect # {send "mkdir /a\r"}
expect # {send "cd /a\r"}
expect # {send "touch /a/a.txt\r"}
expect # {send "ls /a\r"}
expect # {send "cat /a/a.txt\r"}
interact


[root@vh01 ~]# vim expect1.sh
#!/usr/bin/expect
set host 192.168.4.2
set user mike
set password "123"
spawn ssh $user@$host
expect "password:" {send "$password\r"}
expect "\[$user\@" {send "pwd > /tmp/a.txt\r"}
expect "\[$user\@" {send "ls /tmp\r"}
# expect "\[$user\@" {send "exit\r"}
interact


[root@vh01 script]# vim expect2.sh
#!/usr/bin/expect
spawn ftp 192.168.4.2
expect "Name" {send "mike\r"}
expect "Password:" {send "123\r"}
expect "ftp>" {send "ls\r"}
expect "ftp>" {send "get a.txt\r"}
expect "ftp>" {send "exit\r"}


[root@vh01 script]# cat <<EOF
> 123
> 77
> abcd
> EOF
123
77
abcd

[root@vh01 script]# expect <<EOF
> spawn ssh 192.168.4.2
> expect "password:" {send "Taren1\r"}
> EOF


[root@vh01 script]# vim expect4.sh
#!/usr/bin/expect
set host 192.168.4.2
set user mike
set password "123"
spawn ssh $user@$host
expect {
"yes/no" {send "yes\r";exp_continue}
"password:" {send "$password\r"}
}
interact

将expect内置到shell
[root@vh01 script]# cat expect3.sh
#!/bin/bash
for i in {1..100}
do
expect <<EOF
spawn ssh 192.168.4.$i
expect {
"yes/no" {send "yes\r";exp_continue}
"password:" {send "Taren1\r"}
"#" {send "mkdir /a\r"}
"#" {send "cd /a\r"}
"#" {send "touch /a/a.txt\r"}
"#" {send "ls /a\r"}
"#" {send "cat /a/a.txt\r"}
"#" {send "exit\r"}
EOF
done

posted @ 2021-09-17 13:55  Linux刀客  阅读(35)  评论(0编辑  收藏  举报