首页 > 技术文章 > 使用expect解决shell交互问题

dannyyao 2017-12-26 11:50 原文

比如ssh的时候,如果没设置免密登陆,那么就需要输入密码。使用expect可以做成自动应答

1、expect检测和安装

sudo apt-get install tcl tk expect

2、脚本样例

#!/usr/bin/expect
spawn ssh root@192.168.22.194
expect "*password:"
send "123\r"
expect "*#"
interact

3、四个关键命令

spawn: 指定需要将哪个命令自动化
expect:需要等待的消息
send:是要发送的命令
expect off:指明命令交互结束
4、脚本执行
不能用 sh xx.sh命令执行,否则会报错,spawn命令无法识别。当成shell命令执行了
先给脚本执行权限 chmod +x  xxx.sh,然后再执行 ./xxx.sh即可
 
参考文档:
http://blog.csdn.net/chinabluexfw/article/details/7461944
https://www.cnblogs.com/lzrabbit/p/4298794.html
http://blog.csdn.net/lufubo/article/details/7627393

推荐阅读