我试图将命令替换的结果与字符串进行比较,如下所示:
if [$(ping $1)=="ping: unknown host localhosts"]
then
echo "no";
else
echo "yes";
fi
我在这里做错了什么?
答案1
首先,您忘记了空格和引用。接下来,这是一个错误,因此您应该捕获 stderr。最后localhosts
大概是$1
。
if [ "$(ping -c1 "$1" 2>&1)" = "ping: unknown host $1" ]
请注意,该ping
消息可能取决于您的区域设置。如果您只想测试主机的名称解析,那么ping
这并不是一个正确的工具。试试这个:
if getent hosts "$1" > /dev/null; then ...