Chinaunix首页 | 论坛 | 博客
  • 博客访问: 202821
  • 博文数量: 42
  • 博客积分: 2216
  • 博客等级: 大尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-11 19:38
文章分类

全部博文(42)

文章存档

2013年(1)

2011年(9)

2010年(23)

2009年(9)

我的朋友

分类: LINUX

2011-08-15 21:52:42

作者:shiny guo
--------------------
1. expect中的判断语句:    

  1. if { condition } {
  2.      # do your things
  3. } elseif {
  4.      # do your things
  5. } else {
  6.      # do your things
  7. }
expect中没有小括号(),所有的if/else, while, for的条件全部使用大括号{}, 并且{ 与左边要有空格,否则会报错。另,else 不能单独占一行,否则会报错。
2. 字符串比较
  1. if { "$node" == "apple" } {
  2.      puts "apple"
  3. } elseif { "$node" == "other" } {
  4.      puts "invalid name"
  5.      exit 70
  6. } else {
  7.      puts "asd"
  8. }
对比string,使用==表示相等, !=标示不相等。
3. switch 语句
  1. switch $location {
  2.     "apple" { puts "apple" }
  3.     "banana" { puts "banana" }
  4.     default {
  5.         puts "other"
  6.      }
  7. }
记得左大括号{ 的左边要有空格,否则会报错
4. 读取用户输入
  1. expect_user -re "(.*)\n"
  2. send_user "$expect_out(1, string)\n"
expect_user -re 表示正则表达式匹配用户按下回车前输入的所有字符
expect_out(1, string) 表示第一个匹配的内容,即回车前所有字符
expect_out(buffer) 所有的buffer内容
5. break && continue
如c中一样,expect一样可以使用break && continue, 并且功能相同。注:只能用在循环中。
6. 定义交互命令
  1. # stick control + z in variable
  2. set ControlZ \032
  3. # stick control + c in variable
  4. set ControlC \x03
  5. # define string embedded ctrl-z && tab
  6. set oddword foo\032bar\tgorp






阅读(18613) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~