![如何将 nmap 输出传递给 Python 脚本](https://linux22.com/image/1492374/%E5%A6%82%E4%BD%95%E5%B0%86%20nmap%20%E8%BE%93%E5%87%BA%E4%BC%A0%E9%80%92%E7%BB%99%20Python%20%E8%84%9A%E6%9C%AC.png)
我有一个服务器列表,然后我想通过 nmap 将其传递给 Python 解析器(这)
所以我通常这样做:
nmap -sV -p- hostname -oN - | python nmaptocsv.py > hostname.txt
现在我想创建一个 bash 脚本来对 txt 文件的所有行执行此操作。
所以我尝试了:
#!/usr/bin/bash
list="$1"
while read -r line ;do
echo " processing $line "
nmap -sV -p- $line -oN - | python nmaptocsv.py > $line
done < "$list"
但这在第 5 行给出了错误。
答案1
问题似乎是您将 Python 脚本的输出重定向回了 while 循环创建的同一个变量。您很可能希望将其保存在文件中以供以后参考。因此,可能只想创建一个变量以将输出保存到磁盘。
#!/usr/bin/bash
list="$1"
while read -r line ;do
output="scan_${line}.txt"
echo " processing $line "
nmap -sV -p- $line -oN - | python nmaptocsv.py > ${output}
done < "$list"