2013-02-21 89 views
0

我試圖使用Expect自動化遠程Unix系統上的一些命令,這些命令嘗試根據遠程主機名獲取數據。一個例子,如何通過Expect獲取遠程主機名?

expect -re $prompt 
send "lsnrctl status listener_`hostname`\r" 

的問題是,當通過運行期望的,該命令獲取本地主機名,而不是在遠程一個,從而導致沒有有用的輸出。

我需要對Expect腳本進行哪些更改才能使命令獲取遠程主機名?或者我需要對命令本身進行任何更改?

非常感謝。

回答

0

使用單引號。在單引號中的字符串不被本地shell解釋:

expect -re $prompt 
send 'lsnrctl status listener_`hostname`\r' 
+0

它不被遠程shell解釋 - 「hostname」部分保持原樣執行。 – 2013-02-21 06:17:37

+0

它經過一些修改後工作。謝謝 :) – 2013-07-30 13:39:17