日期:2014-05-16  浏览次数:20575 次

linux expect 的小笔记
在linux下经常需要一些自动化执行的脚本,
有可能需要用到某些要求人工输入确认的地方
(如rm之类的操作)
expect是较为方便的一个工具
但是若过度使用expect,有可能对某些并不需要输入确认的操作也进行expect,
从而导致相应的输出被expect吞没
因此需要对expect的操作进行具体的判断
并且设置合适的超时时间
一旦expect结束,马上interact将控制权交回

set timeout 100
eval spawn $input $argv
 
if {$argc >= 2} {
  set cmd [lindex $argv 1]
  if {$cmd == "-rmr" || $cmd =="-rm"} {
    expect "some information?$" { send "y\n" ; interact }
  } else {
    interact
  }
} else {
  interact
}