como apontado acima, o curl pode fornecer nativamente a resposta http:
#!/bin/bash
#example1.sh
function test {
RESPONSE=$(curl -so /dev/null -w "%{http_code}\n" ${1})
if [[ $RESPONSE != 200 ]]; then
echo "Error ${RESPONSE} on ${1}"
fi
}
test mysite.com
test google.com
Exemplo 1 com -s
nós silenciamos o progresso & -o /dev/null
nos permite eliminar a resposta, mas -w
é seu aliado aqui:
$ ./example1.sh
Error 000 on mysite.com
Error 301 on google.com
Isso pode ser ainda mais simplificado de forma nativa, solicitando o url_effective e o redirect_url:
#!/bin/bash
#example2.sh
function test {
curl -so /dev/null -w "%{http_code}\t%{url_effective}\t%{redirect_url}\n" ${1}
}
test mysite.com
test google.com
Exemplo 2, vemos nossa resposta http inicial, domínios solicitados originais e redirecionamos o servidor respondido com:
$ ./example2.sh
000 HTTP://mysite.com/
301 HTTP://google.com/ http://www.google.com/
No entanto, se você está procurando estabelecer uma resposta de 200, mesmo após um redirecionamento 301 ou 302: Então, você pode soltar o "redirect_url"
acima mencionado
#!/bin/bash
#example3.sh
function test {
curl -sLo /dev/null -w "%{http_code}\t%{url_effective}\n" ${1}
}
test mysite.com
test google.com
Exemplo 3, adicionamos -L
que instrui o curl a perseguir o (s) redirecionamento (s):
$ ./example3.sh
000 HTTP://mysite.com/
200 http://www.google.com/