在第一页中,我们希望显示主机名,这是文件中的第五个字段。然后,如果我们提供给主机的IP命令不存在,那么该命令将返回消息3(NXDOMAIN)。该脚本应识别该命令是否“未找到”。在这种情况下必须简单地打印(-)。
#!/bin/bash
ip="$1"
if [ "$ip" ] ; then
host "$ip" | cut -d' ' -f5
elif
[[ "$ip" =~ "[3(NXDOMAIN)]$" ]] ; then
echo "-"
fi
您对此练习有什么解决办法吗?
您不是在测试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