expect自动化交互脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了expect自动化交互脚本相关的知识,希望对你有一定的参考价值。

紧接着上篇脚本进行拆分,分析里面的每个单词以及参数,解开交互的面纱,下面看脚本


#!/bin/expect
spawn ssh [email protected]
expect {
      "yes/no"     {send "yes\r";exp_continue}  ##匹配到yes/no就自动输入yes,继续往下匹配
      "*password"    {send "root\r"}        ##匹配到password,则自动输入root
}
expect eof


拆头:

#!/bin/expect

这个大概一眼就看明白了吧,指定脚本解释器,和Shell脚本是一样的


拆胸:

spawn ssh [email protected]

spawn    这是个命令执行前缀,如果你要切入一个命令就要用它开始,比如mysql_secure_installation时才会产生交互信息,那么你需要用spawn引入


拆腹:

expect {
      "yes/no"     {send "yes\r";exp_continue}  ##匹配到yes/no就自动输入yes,继续往下匹配
      "*password"    {send "root\r"}       ##匹配到password,则自动输入root
}


expect     ##作用是对spawn产生信息进行一个过滤,或者说spawn产生的交互信息进行处理

"yes/no"   ##这个是对产生的交互信息进行过滤,发现yes/no的交互信息进行启用对应的策略进行处理,注意用“”标记

send "yes\r"    ##对上述匹配到的yes/no进行响应“yes”其中\r(发送)\n(换行)\t(Tab键)  send表示发送

exp_continue   ##表示继续进行下一项exp脚本匹配,当属于最后一项匹配则不需要exp_continue结束

*password    ##表示以password结尾的交互


拆脚:

expect eof

expect eof  ##结束脚本




本文出自 “小小小平凡” 博客,谢绝转载!

以上是关于expect自动化交互脚本的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本引用expect

Shell脚本------免交互(Here Document免交互,Expect自动化交互)

expect工具实现脚本的自动交互

expect自动化交互脚本

expect实现脚本的 自动交互

expect免交互脚本编程