ある URL からのレスポンスのステータスコードだけ知りたいときがある。404 かどうかだけわかればよいときだったり。
そういうときは curl の --write-out
/ -w
オプションが使える。このオプションには %{http_status}
などの変数を含んだテンプレートを渡す。このオプションを指定して実行すると、レスポンスボディが出力したあとにテンプレートを展開した文字が出力される。
たとえば、つぎのように使う。
curl -w 'status code: %{http_code}\n' example.com <!doctype html> <html> ... omitted </html> status code: 200
レスポンスボディのあとに -w に渡したテンプレート status code: %{http_code}\n
が展開されたものが出力された。ステータスコードが 200 であることがわかった。
テンプレートに使える変数はいっぱいある。
シェルスクリプトでステータスコードを変数に入れるときは次のようにする。
code=$(curl -sSL -o /dev/null -w '%{http_code}' example.com)