Expect Error: spawn id exp6 not open

 
  1. #/bin/bash 
  2.  
  3. expect << EOF 
  4.  
  5. spawn mail  
  6.  
  7. #set timeout -1  
  8.  
  9. expect { 
  10.         "&" {send "h\r"
  11.         } 
  12.  
  13. expect { 
  14.        "&"    {send "q\r"
  15.        } 
  16. expect eof 
  17. exit 0 
  18.      
  19. EOF 

分析原因:

 

 
  1. expect 没有理解“&”是什么意思,因而直接执行eof,
  2. 这时就会报expect: spawn id exp6 not open
  3. 因为没有spawn在执行,后面的expect脚本也将会因为这个原因而不再执行 

解决方法:

 

 
  1. 10 -  "&" {send "h\r"}
  2. 10 +  "\&" {send "h\r"}

利用"\"把"&"解析成符号

 

补充:

 

 
  1. #set timeout -1  

设置expect脚本的 timeout失效