0

我是初学者。我正在检查域列表上的 HTTP 标头。如果 grep 成功,则以下工作。如果不是,则循环在同一行打印下一行的结果。我希望它在域之后打印错误“000”,然后如果 grep 找不到 HTTP,则转到新行。我试过 if else fi 但在 else 部分出现错误。

    filename="$1"
    while read -r line
    do
        domain=$line
        printf "$domain," 
        curl -m3 -I http://www."$domain" 2>&1 | grep "HTTP/" | awk '{print $2}'   
    done < "domains.txt"   
4

1 回答 1

0

演示:

$ bash curl.sh
free.fr 301
google.com 302
foobar.tld error 000

输入文件 domain.txt :

free.fr
google.com
foobar.tld

剧本 :

while IFS= read -r line
do
    domain="$line"
    tempvar=$(curl -m3 -I "http://www.$domain" 2>&1 |
        awk '/HTTP\//{print $2}')
    # testing if $tempvar exists (not null)
    if [[ $tempvar ]]; then
        echo  "$domain $tempvar"
    else
        echo >&2 "$domain error 000"
    fi
done < "domains.txt"   
于 2013-10-28T22:52:03.747 回答