我有我目前正在尋找多種提示類型和響應發送命令的expect腳本。我知道使用「-re」的正則表達式匹配,但我想知道實現此目的的正確方法。如何指望多個提示正確
例如,我有這些提示的類型:
[[email protected] ~]#
[email protected] --->
/>
-bash-3.00$
cli>
這是正確的/足以表達來檢測上述所有?
set multiPrompt "(%|#|cli\>|\$|\-\-\-\>)"
expect -re $multiPrompt
send "$someCommand\r"
此外,我有一個命令列表,其中一些導致提示在遠程系統上執行後進行更改。由於提示中的更改,其餘命令未發送,因爲我的期望腳本無法檢測到更改並執行發送操作。
我想要做的就是創建可能提示池,讓我期待的腳本跨發出的命令,而不會錯過其中任何一個。我的方法是否正確?
這要看你可以期待一個提示旁邊什麼字符串響應。如果總是有提示,'。*'就足夠了。 – potrzebie 2013-04-26 07:02:16
OTOH,它取決於你想要支持的不同提示和用戶。如果您的腳本僅用於自動化比爾蓋茨家用電腦,則應該將bill @ gates.com放在正則表達式中。如果您想支持所有提示,包括用戶自由修改的提示,那麼您的運氣不好。你不可能匹配。如果你想匹配世界上所有shell和程序的標準提示,祝你好運。 – potrzebie 2013-04-26 07:32:08