2017-07-12 68 views
-1

我開始學習新的預期腳本。你能否理解下面的代碼中發生了什麼?預期腳本中的多重產卵

有一個叫one.exp的代碼文件如下

#!/usr/bin/expect 
global slawn_id 
set timeout -1 
spawn NoPktdrop.exp 
spawn perl NoPktDrop.pl NoPktDrop 
spawn NoPktDrop.exp 
spawn perl NoPktDrop.pl NoPktDrop 
interact 

the code of NoPktdrop.exp is as follows. 

#!/usr/bin/expect 
set timeout -1 
while {1} { 
spawn telnet server 
sleep 1 
expect { 
    "Escape character" { 
      send "\r" 
      expect "SP*>*%" 

      break 
     } 
     "Connection refused" { 
       break 

     } 
    } 
} 
      send "\x1D" 
      expect "telnet> " 
      send "q\r" 
      expect "Connection*%" 

和Perl腳本有一些代碼。

我需要先執行expect腳本,然後一旦生成了NoPktDroplog,日誌需要被賦予perl腳本進行一些檢查。我需要重複一些原因。但是我看到預期的腳本沒有被執行。只有perl腳本被執行。請讓我知道原因。

回答

0
spawn NoPktdrop.exp 
spawn perl NoPktDrop.pl NoPktDrop 
spawn NoPktDrop.exp 
spawn perl NoPktDrop.pl NoPktDrop 
interact 

更改了上面的代碼如下。那麼它的工作。不知道原因。謝謝。

spawn NoPktdrop.exp 
expect eop 
spawn perl NoPktDrop.pl NoPktDrop 
expect eop 
spawn NoPktDrop.exp 
expect eop 
spawn perl NoPktDrop.pl NoPktDrop 
expect eop 
+0

你想'eof'不是'eop' - 預計EOF將讓你等待(最大超時值)產生的進程完成。 –

+0

感謝格倫提供的理由。你能否提到爲什麼我需要刪除交互。我無法得到需要完全交互的地方。 – sri