curl -I
sempre retornará 0
, se conseguir produzir uma saída com o HEAD. Você tem duas alternativas.
O primeiro é usar curl -I --fail
em vez e verificar o código de saída 22
.
Se você está fazendo isso em um script Python, pode parecer:
try:
subprocess.check_call(['curl', '-I', '--fail', url])
except subprocess.CalledProcessError as e:
if e.returncode == 22:
(do something)
A segunda é perguntar apenas o código de status HTTP , assim:
$ curl -s -I -o /dev/null -w '%{http_code}' $bad-url
403