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 に答える