一、变量
设置变量
set VARIABLE zhi
set VARIABLE [lindex $argv 0] 程序后跟的第一个参数
$argv0 程序名
二、数组
Expect:expect数组
赋值:
array set arrayName $list
引用数组
数组大小array size arr
三、函数
proc functionName {parameter list} {
…………
}
函数可以递归调用
四、结构控制
分支结构:
类似与C中的case结构
expect {
"stringOne" {
send "dealWith1"
……
}
"stringTwo" {
send "dealWith2"
……
}
}
顺序结构:
expect ……
send ……
expect ……
send ……
循环结构:
while ($done) {
................
for循环结构
for start test next command
for {set i 0} {$i<[llength $aindex]} {incr i} {
puts $array1([lindex $aindex $i])
}
if else
if { } {
……
} else {
条件分支Switch:
0 {
...............
}
1 {
...............
}
2 {
}
其他知识点
1.send 后面的内容不显示给用户,如果要显示给用户使用send_user 或者使用 puts stderr(显示到屏幕) or puts(可以重定向到文件) puts stdout
2.set timeout n
timeout {
4. exec sleep 1 等待
5. interact 把控制权交给远端
6. exp_continue 继续执行下面的匹配,一般在匹配密码的时候很方便
7. log_file file 可以把之后执行的内容及输出记录到文件中 默认为追加模式,如果想非追加模式在file前加参数 -noappend
8.
6.子程序窗口随父程序窗口一起改变代码
trap {
set rows [stty rows]
set cols [stty columns]
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH