2010-06-28 12 views
3

我是Perl的新手。我使用perl expect模塊產生遠程系統。使用發送模塊一個接一個地執行一組命令(例如$ exp-> send(「my command as string goes here \ n」)。問題是我執行的命令需要一些時間來處理。該命令完成遠程機器超時,我回到我的主機提示。你能幫我如何處理這個問題嗎?Perl期望 - 如何控制目標機器上的超時

我還有一個問題。我有一個命令,執行後返回2個值(例如我在遠程計算機上打印2個值)我想捕獲這兩個值並將其作爲參數傳遞給使用發送模塊的下一個命令。我該如何做到這一點?

請幫我解決這個問題。

謝謝。

我剛剛發現了一些關於expect模塊的內容。有一個undef選項,可以像期望一樣使用,如$ exp-> expect(undef)。這將無限期地等待並讓所有命令完成它們的處理。但問題是,它不會將控制權返回給主機。還有一個選擇是使用eof期望值,它將等待直到它遇到一個eof然後返回到主機。雖然不知道如何使用它。我發現的一個優雅的解決方案是使用ssh在遠程機器上運行命令,而不是使用期望,在這種情況下我們不必處理超時。 :)

回答

1

我剛剛發現了一些關於期望模塊。有一個undef選項,可以像期望一樣使用,如$ exp-> expect(undef)。這將無限期地等待並讓所有命令完成它們的處理。但問題是,它不會將控制權返回給主機。還有一個選擇是使用eof期望值,它將等待直到它遇到一個eof然後返回到主機。雖然不知道如何使用它。我發現的一個優雅的解決方案是使用ssh在遠程機器上運行命令,而不是使用期望,在這種情況下我們不必處理超時。 :)

+0

任何人與任何解決方案預期? – Anu 2010-07-06 20:23:49