Linux 将命令结果输出到txt文件
我写了一个运行网络漏洞工具的小脚本,但它似乎没有输出到我想要的文件路径。有人能指出我哪里出错了吗Linux 将命令结果输出到txt文件,linux,bash,syntax-error,kali-linux,Linux,Bash,Syntax Error,Kali Linux,我写了一个运行网络漏洞工具的小脚本,但它似乎没有输出到我想要的文件路径。有人能指出我哪里出错了吗 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,并
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
的文件,因为您没有引用或转义空格。第一个空格后的标记将作为参数传递给您的命令
如果引用得当,命令将是
cisco torch-A 192.168.128.1-l v>~/“文档/网络扫描日志/ciscotorchlogs/ciscotorchlogs$(日期+%Y\u%m\u%d\u%I\u%m\u%p”)logfile.txt”
请注意,~
如何不能被引用,以及双引号中的命令替换如何仍然得到扩展。(单引号将完全逐字地传递引号中的文本。)最后,在date
命令与其参数之间需要有一个空格
如果您还想捕获标准错误,可以在末尾添加另一个重定向
2>&1
。…特别是,您可能创建了一个文件~/Documents/Network
@larsks-My thinks too,如果它包含空格字符,您需要引用“$file”
。(大括号没有帮助,这里也没有提供任何值。)@tripleee-我没有使用大括号作为bash语法,只是为了指示插入的文件名。头脑不太清楚。我将修改Hanks,这正是我修复此问题所需的,它还帮助我找到了一些区分大小写的bug。我已经纠正了它,现在输出正常。