python中expect的作用_expect基本使用方法

参考:

http://www.cnblogs.com/lzrabbit/p/4298794.html

expect是linux系统中可以和子进程进行交互的一个命令,使用它可以做一些自动化工作。python中也有一个模块pexpect,提供了类似的功能。

例如:使用ssh登陆需要输入密码,可以使用expect代替手工输入。

例如:使用passwd修改账户密码,也可以使用expect代替。

expect用多种执行方式,交互式,执行文件,执行命令。

1.交互式 在命令行输入expect进入交互式

常用命令

send 发送字符串到子进程或者当前进程,注意要最后要有 作为结束

expect 期望的字符串

spawn 开启一个子进程

interact

2.将expect命令写入文件中,执行该文件

expect最常用的语法是来自tcl语言的模式-动作

多分支,匹配到字符串,执行后面的动作。

expect {"hi" { send "You said hi "}

"hello" { send "Hello yourself "}

"bye" { send "That was unexpected "}

}

#!/usr/bin/expect -f

set ipaddr "192.168.16.222"

set passwd "yourpasswd"

spawn ssh root@$ipaddr #spawn 开启一个子进程执行命令。

# expect按顺序执行,大括号是匹配到相应模式,执行相应命令。

expect {

"(yes/no)?" {

send "yes "

expect "assword:" {send "$pasword "}

}

"assword:" {

send "$password "

}

}

3.使用-c参数直接在命令行中执行

expect -c ‘expect "dddd" {send "dddd"}

参考: http://www.cnblogs.com/lzrabbit/p/4298794.html expect是linux系统中可以和子进程进行交互的一个命令,使用它可以做一些自动化工作。python中也有一个模块pexpect,提供了类似的功能。 例如:使用ssh登陆需要输入密码,可以使用expect代替手工输入。 例如:使用passwd修改账户密码,也可以使用expect代替。 expect用多种执行方式,交互式,执行文件,执行命令。 1.交互式 在命令行输入expect进入交互式 常用命令 send 发送字符串到子进程或者当前进程,注意要最后要有 作为结束 expect 期望的字符串 spawn 开启一个子进程 interact 2.将expect命令写入文件中,执行该文件 expect最常用的语法是来自tcl语言的模式-动作 多分支,匹配到字符串,执行后面的动作。 expect {"hi" { send "You said hi "} "hello" { send "Hello yourself "} "bye" { send "That was unexpected "} } #!/usr/bin/expect -f set ipaddr "192.168.16.222" set passwd "yourpasswd" spawn ssh root@$ipaddr #spawn 开启一个子进程执行命令。 # expect按顺序执行,大括号是匹配到相应模式,执行相应命令。 expect { "(yes/no)?" { send "yes " expect "assword:" {send "$pasword "} } "assword:" { send "$password " } } 3.使用-c参数直接在命令行中执行 expect -c ‘expect "dddd" {send "dddd"}
经验分享 程序员 微信小程序 职场和发展