expect基本使用方法

Posted

tags:

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

参考:

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

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

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

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

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

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

常用命令

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

expect 期望的字符串

spawn 开启一个子进程

技术分享

interact 

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

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

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

expect {
"hi" { send "You said hi\\n"}
"hello" { send "Hello yourself\\n"}
"bye" { send "That was unexpected\\n"}
}

#!/usr/bin/expect -f

set ipaddr "192.168.16.222"

set passwd "yourpasswd"

spawn ssh [email protected]$ipaddr              #spawn   开启一个子进程执行命令。

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

expect { 

    "(yes/no)?" { 

        send "yes\\n"

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

    } 

        "assword:" { 

        send "$password\\n"

    } 

 } 

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

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

以上是关于expect基本使用方法的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本引用expect

expect基本使用方法

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

Linux expect 用法

c_cpp Robolution基本代码片段

std::expected以及其开源实现