Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何通过Expect获取远程主机名?_Unix_Expect_Hostname - Fatal编程技术网

Unix 如何通过Expect获取远程主机名?

Unix 如何通过Expect获取远程主机名?,unix,expect,hostname,Unix,Expect,Hostname,我正在尝试使用Expect在远程Unix系统上自动执行一些命令,这些命令尝试根据远程主机名获取数据。例如, expect -re $prompt send "lsnrctl status listener_`hostname`\r" 问题是,当通过Expect运行时,该命令获取本地主机名而不是远程主机名,导致没有有用的输出 我需要对Expect脚本进行哪些更改,以使命令获取远程主机名?或者我需要对命令本身进行任何更改吗 非常感谢您的帮助。使用单引号。本地shell不会解释单引号中的字符串: e

我正在尝试使用Expect在远程Unix系统上自动执行一些命令,这些命令尝试根据远程主机名获取数据。例如,

expect -re $prompt
send "lsnrctl status listener_`hostname`\r"
问题是,当通过Expect运行时,该命令获取本地主机名而不是远程主机名,导致没有有用的输出

我需要对Expect脚本进行哪些更改,以使命令获取远程主机名?或者我需要对命令本身进行任何更改吗


非常感谢您的帮助。

使用单引号。本地shell不会解释单引号中的字符串:

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

它也不会被远程shell解释,
hostname
部分在执行时保持原样。