我正在使用以下脚本在多个服务器上挖掘一个域。 但是,如果域不存在,那么输出也是“由服务器:domain.comparsing的”。 只是因为该命令的执行返回0。 任何人可以帮助我,如果没有logging,这应该通知正确的陈述,而不是打印错误的陈述。
#!/bin/bash a=$1 go="8.8.8.8" f2="4.2.2.2" if [ "$a" = "" ] then echo "Usage: `basename $0` domain.com" exit 1 else dig @"$go" "$a" +short if [ "$?" != 0 ] then echo "Server: $go did not resolve: $a ; " else echo "Resolved by $go: $a ; " echo " " fi fi
如果[[-z $(dig @“$ go”“$ a”+ short)]]为我工作感谢:)
代替:
dig @"$go" "$a" +short if [ "$?" != 0 ]
尝试:
if [[ -z $(dig @"$go" "$a" +short) ]]
dig是一个检查DNS服务器上的问题的工具,因为NXDOMAIN不是问题,它将返回0。
挖将抛出其他代码,例如,当服务器closures,查询被拒绝…
切换到不同的工具,如主机:
$ host serverfault.com 8.8.8.8 >/dev/null $ echo $? 0 $ host serverfaultxyz.com 8.8.8.8 >/dev/null $ echo $? 1