我有很多带有静态IP地址的虚拟服务器,并且有针对它们的A记录。我应该使用关联数组来安装我的CMS。但我有想法。也许我应该使用挖掘,或其他dnsutil为此? 那么,我开始写的是:
start=test
dns=com
for i in "${start}" {1..20}."$dns"; do
echo $i >> "/tmp/temp"
done
for ns in `cat /tmp/temp`; do
if [[ `dig +short $ns=="192.168.110.1"` ]]; then
dig +short $ns
fi
done
但是我的第二次循环出错了。你能帮助我吗 ? 我应该生成一个包含我的域名的列表,例如test1.com,test2.com ...... 之后我应该得到IP地址。下一步将与我的系统IP进行比较,如果我有ip 192.168.110.1,我应该得到我的域名,如test2.com。它不起作用,我打破了我的头,但我不知道,怎么做。如果可能的话,请帮忙。
答案 0 :(得分:0)
立即错误是[[ `dig +short $ns=="192.168.110.1"` ]]
只检查dig
的输出是否为非空字符串(它不是,因为您作为查询传入的字符串不是'有效的一个)。表面的解决方法是
if [[ `dig +short "$ns"` == "192.168.110.1" ]]; then ...
其中equals运算符周围的空格很重要,当然,不应将比较作为参数传递给dig
;但我会更多地重构你的剧本。目前还不完全清楚你希望脚本做什么,但这样的事情呢?
#!/bin/bash
start=test
dns=com
for i in {1..20}; do
host="$start.$i.$dns"
ip=$(dig +short "$host")
if [[ "$ip" == "192.168.110.1" ]]; then
# I'm guessing you want to perform a reverse lookup on the IP address here?
dig +short "$ip"
fi
done