bash 如果无效的算术运算符


value1=ns1.abc.nl.
value2=ns2.abc.nl.
value3=ns3.abc.nl.
for domains in $(cat /home/carlito/Desktop/output.txt)
           do
for nameserver in $(dig +short NS $domains)
           do
                        if [[ ( $nameserver -eq $value1 ) || ( $nameserver -eq $value2 ) || ( $nameserve$
                     then
                echo "$domains Namserver is local" >>/home/carlito/Desktop/resultaat.txt
                break

                else
                echo "$domains namserver IS NOT local" >>/home/carlito/Desktop/resultaat.txt

fi
           done
done

所以我在脚本的 IF 行错误消息=" nszero1.axc.nl.: 语法错误: 无效的算术运算符(错误令牌为".axc.nl.">"。

此脚本的目的="获取输出.txt(域列表("然后挖掘+短NS$domains",然后检查它是否在我首选的名称服务器上$Value 1,2,3如果真=好,如果假=坏

我已经尝试过类似的东西:

value="ns1.abc.nl./ns2.abc.nl/ns3.abc.nl."
for domains in $(cat /home/carlito/Desktop/output.txt)
           do
            if dig +short NS $domains == $value
                then
                echo "$domains is LOCAL"
                else
                echo"$domains Is NOT LOCAL"
          fi
done

但是这样做的是,如果domain.nl=ns1.abc.nl./ns2.abc.nl,它仍然回显:不是本地的。但是我希望脚本具有至少 1 个值,则脚本为 Echo=true。

有人可以指出我正确的方向,我应该使用哪个功能以及我在 if 线上做错了什么?

提前致谢

您正在比较字符串和数值。以下if条件中的语法是比较两个数值,而不是用于字符串比较。此外,您的if条件没有正确以]]结束。我认为您正在将字符串与数值进行比较。请参阅以下正确的if条件:-

首先,

如果左右手的值都是数字,则首先更正 if 条件:-

if [[ ( $nameserver -eq $value1 ) || ( $nameserver -eq $value2 ) ]]

为了正确的字符串比较:-

if [[ ( "$nameserver" == "$value1" ) || ( "$nameserver" == "$value2" ) ]]

希望这对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新