小毛毛初拥expect
前几天在写脚本的时候我有一个功能是想切换用户,让他自动输入密码。实现交互式的登陆。发现了expect这个工具。但是从来没有用过,所以也是出了很多问题。今天就来总结下!希望以后同样是新手的朋友不再走弯路。
1. 首先确认expect的包要安装成功
我用的centos6.5 yum 安装的。
2.查看expect的路径,可以用
3.确定脚本有可执行权限
chmod +x expect.sh
#!/usr/bin/expect 这个路径就是which查看的路径。
set timeout 10 这个是等待超时时间10秒钟
set user root 设置用户变量。变量名:user 变量值:root
set ip "192.168.1.129" 设置变量。变量名字为“ip” 变量值为192.168.1.129
set passwd "123456." 设置密码变量。
spawn ssh –l $user $ip spawn是expect的内置命令,用来执行命令
expect "password:" expect也是expect这个软件的内置变量。用来抓取字段
send "$passwd\r" 输入密码。 温馨提示:命令字符串结尾别忘记加上“/r”。
interact 如果要在远程执行操作,这个必须要注意。执行完成后保持交互状态,而不是退出远程终端。~
4.另外需要注意的是:
不能按照习惯来用sh expect.sh来这行expect的程序,会提示找不到命令,如下:
因为expect用的不是bash所以会报错。执行的时候直接./expect.sh就可以了。~切记
本文出自 “沙漠骆驼” 博客,请务必保留此出处http://maomaochong.blog.51cto.com/9260445/1689071
原文地址:http://maomaochong.blog.51cto.com/9260445/1689071