2013-03-21 43 views
0

我想從我的設備讀取這個輸出,我如何使用print和waitfor,我沒有成功。Net :: Telnet,試圖讀取輸出

這是輸出....

zSH> get v52-interface-group 1 
v52-interface-group 1 
name-id: ---------------------> {CTAA-024} 
local-interface-id: ----------> {1024} 
local-prov-variant: ----------> {2} 
prov-variant-request: --------> {norequest} 
admin-status: ----------------> {inservice} 
pstn-layer-3-start-address: --> {1} 
isdn-env-func-start-address: -> {1} 
port-alignment-request: ------> {norequest} 
national-pstn-region: --------> {brazil} 
switch-vendor: ---------------> {nortel} 
protocol-spec: ---------------> {edition2} 
startup-check-link-id: -------> {false} 
startup-unblock-user-ports: --> {false} 
link-oos-timer: --------------> {2500} 
link-is-timer: ---------------> {200} 

v52-link has 16 elements. Display [a]ll, [n]one, a [s]ubset, or [q]uit? q 

這是我的代碼,我要看書....

$string = "Display [a]ll, [n]one, a [s]ubset, or [q]uit?"; 
$tel->print("get v52-interface-group 1"); 
$tel->waitfor(String => $string); 
@out = $tel->cmd('q'); 
print @out; 

回答

0

你應該儘量保護部分方括號waitfor()使用正則表達式

$string = "/Display\s+\[a\]ll,\s+\[n\]one,\s+a\s+\[s\]ubset,\s+or\s+\[q\]uit\?/"; 
$tel->waitfor($string); 
+0

這樣,我有這個問題 模式匹配超時在v52.pl線49 ,我發送CMD,問題是我不能讀取輸出THA我需要 – user2076234 2013-03-22 11:01:11

+0

問題解決了我使用的控制:: Cli – user2076234 2013-03-22 11:19:58

+0

如果它解決了你,感謝您展示如何使用您的代碼將它添加爲您自己的新響應。像這樣,有相同問題的人會在我們的搜索中找到這個。這是SO網站的工作原理,謝謝。 – 2013-03-22 11:23:39