bash脚本常常需要实现和交互程序如telnet,ftp,scp,ssh服务器等进行交互的功能。而Expect就是用来实现这种功能的工具。
yum -y install expect
cat ssh_test.sh
#!/bin/bash
/usr/bin/expect -c ”
set timeout 10
spawn ssh root@192.168.1.1
expect “password:” {exp_send “123456″\r;}
interact”
参数说明:
set timeout 设置一个等待时间
spawn 是expect的初始命令,启动一个进程信息(需要执行的命令)
expect 用于匹配输出操作,当执行ssh命令后,匹配到”password:”,再执行exp_send后面的动作,即输入密码”123456″
interact 是执行脚本中把控制权交给用户。