【发布时间】:2023-03-15 23:31:02
【问题描述】:
#!/bin/bash
for h in "bert" "ernie" "www.google.com"
do
host $h 2>&1 > /dev/null
if [ $? -eq 0 ]
then
echo "$h is a FQDN"
else
echo "$h is not a FQDN"
fi
done
喜欢插入 'hostname -f' 的输出而不是 'bert' 或 www.google.com 如果主机名是 FQDN,则脚本应继续,否则应出现错误消息。 PS。 TLD 是否存在并不重要。例如。 hostname.domain 是 FQDN 或 hostname.domain.tld 是 FQDN。 TLD 在互联网上是否有效对我来说并不重要。 output of hostname -f
【问题讨论】:
-
如果TLD不存在,你怎么知道它是否完全合格?
-
主机名 = 非 FQDN 和 hostname.domain = FQDN
-
顺便说一句,
test $?是一种反模式——只需在if中直接使用host的结果即可;例如,if host "$h" >/dev/null 2>&1; then ...; fi。 -
如果你只想要
hostname -f的输出,你为什么要问这个问题? -
我想要使用 hostname -f 的输出来确定我想要继续还是退出 te 脚本。 hostname only 是 exit,fqdn 表示 continue。