Você pode fazer curl retornar códigos de status HTTP reais na saída padrão, desde que você use o
-w <format>
ou --write-out <format>
opção de linha de comando, usando o formato de %{http_code}
Isso fornece uma maneira fácil de pesquisar um endpoint de API usando algo tão simples como bash sem ter que procurar os significados do código de saída do curl:
#!/bin/bash
while true
do
STATUS=$(curl -s -o /dev/null -w '%{http_code}' http://example.com/poll-me)
if [ $STATUS -eq 200 ]; then
echo "Got 200! All done!"
break
else
echo "Got $STATUS :( Not done yet..."
fi
sleep 10
done
Você pode aprender mais formatos de saída consultando a página do manual curl e pesquisando write-out
no conteúdo da página.