昨晚稍微研究Perl的Net::Telnet module,知道這module要預先宣告prompt,讓程式知道接下來會遇到什麼樣的提示符號或字串,才能很順往下跑,若是prompt宣告錯誤,會卡著等timeout,再往下一行run,而且prompt宣告的字串,應該是螢幕當下出現的最後幾個字,而不是任意字串都可以,之前就是因為這點沒搞清楚,導致程式在某些片段會hang住,等timeout時間一過才往下run,這下知道原因真是豁然開朗,原來是prompt沒有設對的關係,而且使用$tel->cmd(String => ‘xxxxx’, Prompt => ‘/\$|#|%|>/’);的方式來宣告一次cmd的執行與prompt也較容易懂。
若Net::Telnet能運用的好,只要準確掌控相對應prompt,連batch script最怕碰到的interactive command都能順利解決,凡舉更改password或是service設定等等,都能夠有solution,功能相當強大,有空應該要多研究一下才是。
沒有留言:
張貼留言