我是初学者。我正在检查域列表上的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"
答案 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"