Я пытаюсь написать сценарий bash, который должен выполнять обратный поиск DNS по диапазону IP-адресов. Идея состоит в том, чтобы обеспечить сеть (первые 3 октета) как $ 1, начало диапазона, который будет проверяться как $ 2, а конец указанного диапазона - $ 3.Использование аргументов командной строки in for loop (bash)
Так что я закончил с:
#!/bin/bash
if [ $# -ne 3 ]
then
echo "[*] Usage: reverselookup.sh [Network (x.x.x)] [start of range (y)] [end of range (z)]"
exit 1
fi
for ip in {$2..$3}
do
host $1.$ip | grep pointer
done
Теперь я думал, что это будет использовать нормальную работу последовательность в Баш для петель, как в
for i in {2..5}
дает петлю с 2, 3 , 4 и 5. Однако это не сработает.
Если я повторяю $ ip внутри цикла и запускаю его, например.
reverselookup.sh 192.168.10 21 50
он представляет меня
{21..50}
Кто-нибудь знает, можно ли сделать эту работу? Или мне нужно пересмотреть мою оценку?
Заранее спасибо.
Смотрите описание [Brace расширения] (http://www.gnu.org/software/bash/manual/bash.html#Brace-Expansion), чтобы понять, почему то, что вы типа не будет Работа. –