Curl para retornar apenas o código de status http da linha de comando

Curl para retornar apenas o código de status http da linha de comando

Eu tenho o curl abaixo que lê dados de um arquivo e os publica no servidor e tudo funciona bem. Também recebo a resposta com sucesso.

curl -v 'url' -H 'Aceitar codificação: gzip, deflate, br' -H 'Tipo de conteúdo: aplicativo/json' -H 'Aceitar: aplicativo/json' -H 'Conexão: keep-alive' -H 'DNT: 1' -H 'Origem: url' --data-binary "@/Users/david/Downloads/temp.txt" --comprimido

Agora estou apenas tentando obter o código de status da solicitação curl acima, em vez da resposta completa. Tentei fazer como abaixo mas não funciona.

curl -v 'url' -H 'Aceitar codificação: gzip, deflate, br' -H 'Tipo de conteúdo: aplicativo/json' -H 'Aceitar: aplicativo/json' -H 'Conexão: keep-alive' -H 'DNT: 1' -H 'Origem: url' --data-binary "@/Users/david/Downloads/temp.txt" --comprimido | cabeça -n 1 | cortar -d$' ' -f2

Há algo errado no meu comando acima?

Responder1

Remover -ve adicionar--silent, descarte stdout com--output /dev/null e imprima o status http com--write-out '%{http_code}'(resumidamente -s -o /dev/null -w '%{http_code}'):

curl 'url' \
  -H 'Accept-Encoding: gzip, deflate, br' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Connection: keep-alive' \
  -H 'DNT: 1' \
  -H 'Origin: url' \
  --data-binary "@/Users/david/Downloads/temp.txt" \
  --compressed \
  --silent \
  --output /dev/null \
  --write-out '%{http_code}'

informação relacionada