ドメインスクリプトの解析[閉じる]

ドメインスクリプトの解析[閉じる]

どのように機能させるのですか?


スクリプト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

  1. あなたが持っているものはうまくいくはずですが、そうでない理由はありません。私のシステムでは間違いなく動作します。

  2. その必要はありませんgrep。以下はうまくいきます。

ip=$(getent hosts "$host" | awk '{ print $1}')

答え2

を使用して取得できる2つの異なる結果セットを混同していますgetent hosts

  1. getent hostsおおよそ次のような結果を返します。cat /etc/hosts
  2. getent hosts TARGEThostsのエントリを使用して/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/hostsDNSを検索して検索することもできます。どこに置いたかわからないか、'3"番目のスクリプトが機能しません。

関連情報