关于expect研究(四)

前言

最近又开始开始了expect的一些更深层次的东西,分享出来

字典

expect没有严格意义的字典,但是确实可以使用
创建字典:

set mydict [dict create tbj tbjpass server serverpass]  
它表示创建一个字典叫做mydict,包含2个kv对:tbj & tbjpass 和server & serverpass  

你也可以这样添加数据:

set mydict .dongwm dongwmpass  
 表示添加一个键为.dongwm 值为dongwmpass的新数据到mydict  

根据key获取值可以这样:

[dict get $mydict server]  
表示从mydict获取server的值  

NB的事,可以直接这样写,看我的片段:

expect “password:”  
send “[dict get $mydict s70]\n”  
也就是直接把这个看起来像列表的东东直接写到字符串里面  

判断变量是否存在

if {[info exists serverpass]!=1} {  
    puts ‘sd’  
}  
表示如果serverpass这个变量要是不存在,就puts,但是注意的是,  
假如上面你已经set 这个变量,不管有没有值,这个变量都已经被 _定义_ 了  

判断列表包含

一种使用switch结构,还有一种是if方式,将属于一类的放在一个列表,
看它是不是’in’:

set listserver “1 2 3 4 “  
if {1 in $listserver} {puts 11}  
当1在列表$listserver里面puts  

switch多条件

假如有一些switch的结果,但是他们有一些需要做一样的操作,
那么就可以吧他们放在一起

switch $port {  
    100  -  
    200  { puts 1}  
    300  -  
    400 {puts 2}  
    }  
这里表示当port是100,或者200会puts1,当port是300或者400,会puts2  

版权声明:本文由 董伟明 原创,未经作者授权禁止任何微信公众号和向掘金(juejin.im)转载,技术博客转载采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
python