expect 参数处理之一
2015-09-04 12:35
239 查看
expect 参数处理之一
expect是很强悍的脚本,网上资源虽然很经典,但很少,我把自己的测试脚本贴之,仅作参考
#!/usr/bin/expect -f
proc help {} {
puts {usage: <ivie_ip> [-p <password>] [cmd] }
}
if {$argc<1} { help ; exit}
set ip [ lindex $argv 0 ]
set password rootroot
set cmd ""
for {set i 1} {$i<$argc} {incr i 1} {
set m [lindex $argv $i]
switch $m {
"-p" { if {$argc<3} { help ; exit 1 }
set password [lindex $argv [expr 1+$i ]]
incr i 1
} default { puts "mm:$m"
lappend cmd $m
}
}
}
puts "$ip -p $password $cmd"
在处理bash的时候我也喜欢用循环加case处理,简单,可操作性大。
对于switch后面是有选项的 :-exact方式,-glob 方式,-regexp 方式, 缺省情况表示-glob
方式。-exact方式表示的是精确匹配,-glob 方式的匹配方式和 string match 命令的匹配方式相同 ,-regexp
方式是正规表达式的匹配方式。
expect是很强悍的脚本,网上资源虽然很经典,但很少,我把自己的测试脚本贴之,仅作参考
#!/usr/bin/expect -f
proc help {} {
puts {usage: <ivie_ip> [-p <password>] [cmd] }
}
if {$argc<1} { help ; exit}
set ip [ lindex $argv 0 ]
set password rootroot
set cmd ""
for {set i 1} {$i<$argc} {incr i 1} {
set m [lindex $argv $i]
switch $m {
"-p" { if {$argc<3} { help ; exit 1 }
set password [lindex $argv [expr 1+$i ]]
incr i 1
} default { puts "mm:$m"
lappend cmd $m
}
}
}
puts "$ip -p $password $cmd"
在处理bash的时候我也喜欢用循环加case处理,简单,可操作性大。
对于switch后面是有选项的 :-exact方式,-glob 方式,-regexp 方式, 缺省情况表示-glob
方式。-exact方式表示的是精确匹配,-glob 方式的匹配方式和 string match 命令的匹配方式相同 ,-regexp
方式是正规表达式的匹配方式。
相关文章推荐
- 几款屏幕录制软件 ActivePresente
- error: /usr/include/stdio.h: Permission denied 的一种情况分析
- gcc -D 传值给代码,默认值为1
- linux内核编译环境配置
- Eclipse 开发利器 Jrebel热部署配置 基于Jetty
- MvvmLight(三)命名绑定Command
- 开源免费跨平台opengl opencv webgl gtk blender, opengl贴图程序
- expect 参数处理之一
- 几款屏幕录制软件 ActivePresente
- error: /usr/include/stdio.h: Permission denied 的一种情况分析
- gcc -D 传值给代码,默认值为1
- linux内核编译环境配置
- 一种不能删除文件的情况分析过程
- 内核编程实例,多文件的Makefile
- c 有意思的数组初始化
- C 文件直接包含
- [面试技巧]16个经典面试问题回答思路
- 一种不能删除文件的情况分析过程
- 内核编程实例,多文件的Makefile
- c 有意思的数组初始化