【发布时间】:2021-05-03 21:59:58
【问题描述】:
我正在尝试获取 1000 个域的 IP... 下面是我的程序...
#!/bin/bash
yesterday=$(date --date "1 days ago" +%F)
while read -r line comment
do
ip=$(host -4 $line | head -1 | awk -F" " '{print $5}')
echo "$ip"
done < /home/domainsa/public_html/data/domains/$yesterday-domains.txt
它告诉我
sh -x 域-ip.sh
++ date --date '1 days ago' +%F
+ yesterday=2021-05-02
+ read -r line comment
++ host -4 $'0-96.com\r'
++ head -1
++ awk '-F ' '{print $5}'
+ ip='3(NXDOMAIN)'
+ echo '3(NXDOMAIN)'
3(NXDOMAIN)
+ read -r line comment
++ host -4 $'0-roll.com\r'
++ head -1
++ awk '-F ' '{print $5}'
+ ip='3(NXDOMAIN)'
+ echo '3(NXDOMAIN)'
3(NXDOMAIN)
+ read -r line comment
++ host -4 $'000850.xyz\r'
++ head -1
++ awk '-F ' '{print $5}'
+ ip='3(NXDOMAIN)'
+ echo '3(NXDOMAIN)'
3(NXDOMAIN)
+ read -r line comment
++ host -4 $'00097971.com\r'
++ head -1
++ awk '-F ' '{print $5}'
+ ip='3(NXDOMAIN)'
+ echo '3(NXDOMAIN)'
3(NXDOMAIN)
$ 和 ' 和 \r 不是我所期待的......
知道我哪里做错了吗?
我检查While Loop in Bash Unexpected Character 但我也在使用选定的答案...
PS:有没有更好更快捷的 bash 命令行来获取域的 IP 地址...这是我所知道的,所以写了这个程序。
[编辑]
我正在使用awk -F" " '{print $4}
【问题讨论】:
-
如果您不想在输入中包含回车符,请通过
dos2unix进行管道传输。