我有一个服务器列表,然后我想通过 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"