![ドメインスクリプトの解析[閉じる]](https://linux33.com/image/78625/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E8%A7%A3%E6%9E%90%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
どのように機能させるのですか?
スクリプト1:(これはうまくいきません)
host=www.example.com
ip=$(getent hosts | grep $host | awk '{ print $1}')
echo $ip
スクリプト2:(これはうまくいきません)
host=www.example.com
ip=$(getent hosts $host | awk '{ print $1}')
echo $ip
スクリプト3:(動作しますが、変数を使用する必要があります...)
ip=$(getent hosts www.example.com | awk '{ print $1}')
echo $ip
変数に基づいて適切なホストファイルIPを取得する必要があります。
スポンサー:(背中/ホスト)
127.0.0.1 localhost
1.1.1.1 www.example.com
答え1
あなたが持っているものはうまくいくはずですが、そうでない理由はありません。私のシステムでは間違いなく動作します。
その必要はありません
grep
。以下はうまくいきます。
ip=$(getent hosts "$host" | awk '{ print $1}')
答え2
を使用して取得できる2つの異なる結果セットを混同していますgetent hosts
。
getent hosts
おおよそ次のような結果を返します。cat /etc/hosts
getent hosts TARGET
hosts
のエントリを使用して/etc/nsswitch.conf
検索TARGET
し、見つかった最初の一致を返す1つ以上のホストデータベース
host
スクリプト1はfindでのみ起動されます/etc/hosts
。次のように少し短縮することもできます。
host=www.example.com
ip=$(getent hosts | awk '/'"$host"'/ {print $1; exit}')
echo $ip
スクリプト2と3は/etc/hosts
DNSを検索して検索することもできます。どこに置いたかわからないか、'
3"
番目のスクリプトが機能しません。