Há um escopo para falso positivo, pois 301.*domain\.com.*200
corresponderia por exemplo:
HTTP/1.1 404 Not found Content-Length: 3010 X-Pingback: http://blah.domain.com/xmlrpc Last-Modified: Thu, 14 Nov 2009 19:27:05 GMT
Você poderia ser um pouco mais aprofundado e escrevê-lo, por exemplo:
curl -sIL http://qa-mod-rewrite.domain.com |
tr -d '\r' |
awk -v RS= '
NR == 1 && $2 == "301" && /\nLocation: [^\n]*domain\.com/ {redir=1}
$2 == "200" {end=1}
END {exit !(redir*end)}'
Com dados variáveis:
url=$1
EXPECTED_REDIRECTION=$2
EXPECTED_REDIRECTION_CODE=$3
EXPECTED_TERMINAL_CODE=$4
export EXPECTED_REDIRECTION EXPECTED_REDIRECTION_CODE EXPECTED_TERMINAL_CODE
curl -sIL "$url" |
tr -d '\r' |
awk -v RS= '
BEGIN {
re = ENVIRON["EXPECTED_REDIRECTION"]
gsub(/[][^.$+?\()]/, "\&",re)
re = "\nLocation: [^\n]*" re
}
NR == 1 && $2 == ENVIRON["EXPECTED_REDIRECTION_CODE"] && $0 ~ re {redir=1}
$2 == $ENVIRON["EXPECTED_TERMINAL_CODE"] {end=1}
END {exit !(redir*end)}'