Séparez la sortie du contenu vers stdout
et le code de statut HTTP vers stderr
:
curl http://www.example.org -o >(cat >&1) -w "%{http_code}\n" 1>&2
Si seul le code de statut HTTP est souhaité vers stderr, --silent
peut être utilisé :
curl --silent http://www.example.org -o >(cat >&1) -w "%{http_code}\n" 1>&2
Le flux désiré peut alors être choisi en redirigeant celui non désiré vers /dev/null
:
$ (curl --silent http://www.example.org -o >(cat >&1) -w "%{http_code}" 1>&2) 1>/dev/null
200
$ (curl --silent http://www.example.org -o >(cat >&1) -w "%{http_code}" 1>&2) 2>/dev/null
...
Note que pour que la deuxième redirection se comporte comme souhaité, nous devons exécuter la commande curl dans un sous-shell.
0 votes
Pour ma part, je peux voir dans le manuel comment obtenir le code de statut HTTP, mais l'option -w ne fonctionne pas. J'ai signalé le bug à Apple.
71 votes
Le drapeau
-i
, comme danscurl -i https://www.example.com/
, est probablement ce que vous voulez, selon superuser.com/a/514798/1901880 votes
Pourquoi ne pas simplement quelque chose comme
curl -IL http://www.example.com | grep "^HTTP\/"
?11 votes
Ne pas oublier à ton futur toi-même : la réponse que tu veux est probablement celle de Cyril David (actuellement en 4ème position)