将命令结果输出到txt文件

Outputing command results to a txt file

我为 运行 网络漏洞工具编写了一个小脚本,但它似乎没有输出到我想要的文件路径。谁能指出我哪里出错了?

     cisco-torch -A 192.168.128.1 -l v > ~/Documents/Network Scanning Logs/ciscotorchlogs/ciscotorchlogs$(date+"%Y_%m_%d_%I_%M_%p")logfile.txt

理想情况下,脚本应该 运行 并创建一个名为 ciscotorchlogs(date)logfile.txt 的新文件并将其输出放在那里。我 运行 通宵编写脚本,但今天早上回来发现它没有创建任何输出文件。

感谢您的帮助。

您的路径是 ~/Documents/Network Scanning Logs,我怀疑这些空格导致了问题。你可以这样逃脱:

~/Documents/Network\ Scanning\ Logs

等等

另请注意 > 正在重定向 stdout。你可能也想要 stderr,所以我会使用

> file.txt 2>&1

stderr 发送到 stdout 流(因此被重定向到 file.txt

重定向到 Documents 文件夹中名为 Network 的文件,因为您没有引用或转义白色 space。第一个白色space 之后的标记将作为参数传递给您的命令。

如果引用正确,命令将是

cisco-torch -A 192.168.128.1 -l v > ~/"Documents/Network Scanning Logs/ciscotorchlogs/ciscotorchlogs$(date +"%Y_%m_%d_%I_%M_%p")logfile.txt"

请注意如何 ~ 不能被引用,以及双引号内的命令替换如何仍然得到扩展。 (单引号会完全逐字地传递引号内的文本。)最后,date 命令及其参数之间需要一个 space。

如果你还想捕获标准错误,你可以在最后添加另一个重定向 2>&1(同样,前面有一个 space)。