我需要知道如何获取输出并将其存储在变量中。我不想将所有输出发送到文件,只是发送我发送的命令输出之一..基本上
AUTH
AUTH
LIST <---needs to go to file
我尝试过..
read $response
但它不起作用。
答案1
你必须消除$:
read response
答案2
nc
不是expect
,因此您无法控制捕获远程主机输出的哪些部分。您可以将整个输出重定向到一个文件(稍后使用awk
、sed
、perl
或其他任何方式处理该文件以仅提取您需要的内容)或将其直接通过管道传输到awk
(或其他方式),然后再写入文件或将其存储在 shell 变量中(通过$()
命令替换)。
但是,几乎可以肯定,您最好使用perl
(并使用Expect.pm
模块 or Net::Telnet
、 or Net::IMAP
) 或python
using pexpect
(orpython
的库) 或使用类似库或 IMAP 客户端库的imaplib2
其他语言来编写脚本。expect
这将允许您连接到远程主机上的相关端口(IMAP,从外观上看),发出您需要的任何命令,等待响应,并对响应执行任何您需要的操作(包括将一些响应保存到一份文件)
我已将标签添加到您的问题中 - 单击它即可获取此网站上相关问题和答案/expect
的列表。expect