我正在尝试编写一个 bash 脚本,该脚本应该对一系列 IP 地址执行反向 DNS 查找。这个想法是将网络(前 3 个八位字节)提供为 $1,要检查的范围的开始为 $2,所述范围的结束为 $3。
最后我得到了:
#!/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
现在我认为这将使用 bash for 循环中的正常序列操作,就像在
for i in {2..5}
给你一个包含 2、3、4 和 5 的循环。但是它不起作用。
如果我在循环中回显 $ip 并运行它,例如
reverselookup.sh 192.168.10 21 50
它给了我
{21..50}
有谁知道这是否可行? 还是我必须重新考虑我的方法?
提前致谢。
最佳答案
可以使用seq
来替换
for ip in {$2..$3}
说:
for ip in $(seq $2 $3)
关于bash - 在 for 循环中使用命令行参数 (bash),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18975347/