curlの404のときのステータスコード
curl
コマンドでURLにアクセスしたとき、404 Not Foundの場合は終了ステータスコードが0になる。
$ curl https://example.com/notfound
・・・
$ echo $?
0
404のときに0以外のステータスコードを返す
curl
コマンドで404 Not Foundの場合に0以外のステータスコードを返すには、-f
オプション(--fail
オプション)を指定する。
$ curl -f https://example.com/notfound
curl: (22) The requested URL returned error: 404 Not Found
$ echo $?
22
-f
オプション(--fail
オプション)は正確にはエラー時にHTMLを表示せずに素早く終了するオプション。-f
オプションを指定すると、curl
コマンドが404 Not Foundを返すときに終了ステータスコードが22になる。
この性質をつかってシェルスクリプトで取得できたかどうかを確認しつつ処理を分岐させられる。
RESULT=$(curl -f https://xxxx.com/xxxx)
if [ $? -eq 0 ]; then
# 取得できたときの処理
else
echo "Not Found"
fi
\第一線のプログラマーの行動原理を学べる!/