原创文档,转载请注明作者与本文URL。
linux中的expect工具很不错,能够自动实现交互,也即是说自己自动进行ssh登录等动作。这是我写的一个简单的用法,稍作修改就可以变成很实用都脚本。有人介绍的很详细,我就直接上脚本了。
#!/usr/bin/expect -f #用expect实现自动交互 #期望的字符串必须出现,而且必须按顺序出现,send记得带上换行符 #指定要启动的命令,可以带参数 spawn ./hello.sh v1 v2 #可以设置超时,默认的超时就是10秒 set timeout 11 #一问一答的节奏,expct期望一个字符串,然后send回应一个字符串 expect "(yes/no)" send "yes\r" expect "password:" send "no-password\n" #期望的字符串是正则匹配的,发送要记得换行符,\r和\n都行 expect "*num" send "1\n" #等着命令结束后退出 expect eof
代码保存为一个脚本,例如 a.sh,加上执行执行权限后 ./a.sh 即可运行。
todo:有个地方讲了\r \n的区别,以后补上。
原创文档,转载请注明作者与本文URL。