2013-02-21 86 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