bash 脚本帮助

bash 脚本帮助

我正在使用以下脚本在多台服务器上挖掘域。但是,如果域不存在,则输出也是“由服务器解析:domain.com ;”。这只是因为命令的执行返回 0 。如果没有记录,有人能帮助我吗?这应该会告知正确的语句,而不是打印错误的语句。

#!/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

if [[ -z $(dig @"$go" "$a" +short) ]] 对我有用谢谢:)

答案1

代替:

dig @"$go" "$a" +short
if  [ "$?" != 0 ]

尝试:

if [[ -z $(dig @"$go" "$a" +short) ]]

答案2

dig 是一个用于检查 DNS 服务器问题的工具,由于 NXDOMAIN 不是问题,因此它将返回 0。dig
会抛出其他代码,例如,当服务器关闭时,查询会被拒绝...

切换到不同的工具,如主机:

$ host serverfault.com 8.8.8.8 >/dev/null
$ echo $?
0
$ host serverfaultxyz.com 8.8.8.8 >/dev/null
$ echo $?
1

相关内容