Ip主机脚本bash

问题描述 投票:0回答:1

在第一页中,我们希望显示主机名,这是文件中的第五个字段。然后,如果我们提供给主机的IP命令不存在,那么该命令将返回消息3(NXDOMAIN)。该脚本应识别该命令是否“未找到”。在这种情况下必须简单地打印(-)。

#!/bin/bash
ip="$1"

if [ "$ip" ] ; then
         host "$ip" | cut -d' ' -f5

 elif
         [[ "$ip" =~ "[3(NXDOMAIN)]$" ]] ; then
                echo "-"
fi

您对此练习有什么解决办法吗?

bash ip host
1个回答
0
投票

您不是在测试host命令的结果,而是在测试原始$ip变量的值。

此外,进行正则表达式匹配时,请勿将表达式放在引号中,而需要转义括号。

不需要使用cut,您可以在行中的任何位置匹配NXDOMAIN。

#!/bin/bash
ip="$1"

if [ "$ip" ] ; then
    result=$(host "$ip" 2>&1)
    if [[ $result =~ 3\(NXDOMAIN\)$ ]] ; then
        echo "-"
    else
        echo "$result"
    fi
fi
© www.soinside.com 2019 - 2024. All rights reserved.