2013-10-28 41 views
0

我是初學者。我正在檢查域列表上的HTTP標頭。如果grep成功,以下工作。如果沒有,循環會在同一行上打印下一行的結果。我希望它在域之後打印一個錯誤「000」,然後在grep沒有找到HTTP的情況下轉到新的一行。我試過如果其他fi,但我得到了其他部分的錯誤。檢查域標題curl和grep

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" 
+0

文件名可變 –

回答

0

演示:

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

輸入文件domains.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"