使用 netcat 进行 Bash,将一个命令的输出发送到文件

使用 netcat 进行 Bash,将一个命令的输出发送到文件

我需要知道如何获取输出并将其存储在变量中。我不想将所有输出发送到文件,只是发送我发送的命令输出之一..基本上

AUTH
AUTH
LIST  <---needs to go to file

我尝试过.. read $response但它不起作用。

答案1

你必须消除$:

read response

答案2

nc不是expect,因此您无法控制捕获远程主机输出的哪些部分。您可以将整个输出重定向到一个文件(稍后使用awksedperl或其他任何方式处理该文件以仅提取您需要的内容)或将其直接通过管道传输到awk(或其他方式),然后再写入文件或将其存储在 shell 变量中(通过$()命令替换)。

但是,几乎可以肯定,您最好使用perl(并使用Expect.pm模块 or Net::Telnet、 or Net::IMAP) 或pythonusing pexpect(orpython的库) 或使用类似库或 IMAP 客户端库的imaplib2其他语言来编写脚本。expect

这将允许您连接到远程主机上的相关端口(IMAP,从外观上看),发出您需要的任何命令,等待响应,并对响应执行任何您需要的操作(包括将一些响应保存到一份文件)

我已将标签添加到您的问题中 - 单击它即可获取此网站上相关问题和答案/expect的列表。expect

相关内容