1

У меня есть список серверов, и я хочу nmap, а затем перейти к парсеру Python (это)

Так что обычно я делаю это:

nmap -sV -p- hostname -oN - | python nmaptocsv.py  > hostname.txt

Теперь я хочу создать скрипт bash, чтобы сделать это для всех строк в текстовом файле.

Итак, я попробовал:

#!/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 ответ1

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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .