コマンド置換の結果を次の文字列と比較しようとしています。
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 ...