どのように機能させるのですか?
スクリプト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"
番目のスクリプトが機能しません。