linux的expect用法,用来跳过窗口交互性
expect的核心是spawn expect send set
spawn 调用要执行的命令
expect等待命令提示信息的出现,也就是捕捉用户输入的提示:
send发送需要交互的值,替代了用户手动输入内容
set设置变量值
interact执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。
expect eof 这个一定要加,与spawn对应表示捕获终端输出信息终止,类似于....endif
4.[expect"password:"]
这里的expect也是expect的一个内部命令,有点晕吧,expect的shel命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命令的意思是判断。
果里是否包含“password:"的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒
5.[send"ispass\r"]
这里就是执行交互动作,与手工输入密码的动作等效。
温馨提示:命令字符串结尾别忘记加上r”,如果出现异常等待的状态可以核查一下。
6.[interactl
执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只