expect学习之如何获取命令行参数和函数参数

学习本文后你将能够编写一个expect脚本,获取脚本的输入参数,并且在脚本中定义函数,获取函数的参数。

获取脚本的参数

运行expect脚本的方式:

% expect script.exp argv1 argv2

其中expect为expect脚本解释器,因此你的电脑上必须安装expect;script.exp为脚本文件;argv1,argv2为传递到脚本文件的参数。

#!/usr/bin/expect

for {set i 0} {$i < $argc} {incr i} {

puts "arg $i: [lindex $argv $i]"

}

[yellia .script]$ ./echo.exp 11 22 33

执行结果为:

arg 0: 11

arg 1: 22

arg 2: 33

如果你想获得当前执行脚本的名称,那么可以访问argv0

获取函数的参数

expect 和shell一样提供了很多command,并且expect的大多数功能都是以command的方式实现的,例如控制结构(if/for/while/switch)。函数的功能是通过proc命令提供的。

proc printParam {name sex} {

puts "name: $name"

puts "sex: $sex"

}

调用时必须传递对应个数的参数,否则会报错。

推荐阅读更多精彩内容