expect脚本如何运行的简单介绍
建议使用python程序搞定, 楼主上面的需求, 都不是问题, 这个可以帮助搞定, 另外, wo最近开发了一个自动化的批量管理服务器的程序, 里面就有上述功能如果感兴趣的话, 可以一起讨论一下,看看my网名就行了。
usrbinexpect set time 30 set passwd xxxxx xxxx是你的密码内容spawn sudo expect quotPasswordquot 引号里是你手动执行sudo时候 系统返回给你的提示,可以只匹配最后几个字母,也可以写全 send quot$pa。
spawn在expect下执行shell脚本 expect对通过spawn执行的shell脚本的返回进行判断,是否包含“”中的字段 send如果expect监测到了包含的字符串,将输入send中的内容, 相当于回车 interact退出expect返回终端,可以继续输入,否。
我是用expect的脚本去调用shell的脚本下面的shell脚本是某应用的启动脚本,因为牵涉到要手动选择环境变量,所以就想用expect去实现这个功能。
比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递 sshexp Python代码 #!usrbinexpect set timeout 10 set username lindex $argv 0 set password lindex $argv。
1,使用“c”选项,从命令行执行expect脚本expect可以让你使用“c”选项,直接在命令行中执行它,如下所示$expectc#39expectquot quotsendquotpressedenter quotpressedenter$如果你执行了上面的脚本,它会等待输入换行符 。
阻塞最大时间为timeout所设 更常用的是编写bash脚本嵌入expect命令 可以使用 ltlt FLAG 语法读取命令执行能够支持此语法是因为expect做了出来,并不是所有命令echo都会从stdin读取数据。
简单的脚本,参考下 要交互的脚本talksh如下!binbash echo quotWho are you?quotread who echo quotHello,$whoquotecho quotAre you happy?quotread answer echo quotwhy?quotread answer 自动化脚本!binbash expectltlt END。