コマンドラインから http ステータス コードのみを返す Curl

コマンドラインから http ステータス コードのみを返す Curl

以下の curl はファイルからデータを読み取り、それをサーバーに投稿しますが、すべて正常に動作します。応答も正常に返されます。

curl -v '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

今、私は完全な応答ではなく、上記の curl リクエストからステータス コードを取得しようとしています。以下のようにしてみましたが、うまくいきません。

curl -v '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 | head -n 1 | cut -d$' ' -f2

上記のコマンドに何か問題がありますか?

答え1

削除-vして追加--silent、stdoutを破棄する--output /dev/null そしてhttpステータスを印刷します--write-out '%{http_code}'(要するに-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}'

関連情報