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
}

相关推荐