このスレッドでは:https://superuser.com/questions/569092/how-to-split-the-http-error-code-from-the-contents-in-curl
この部分は次のことを意味します。
if [[ $RET -ne 0 ]] ; then
# if error exit code, print exit code
echo "Error $RET"
これをエラー処理として使用したいのですが、400を返した場合はまだelseセクションに応答してコードのみを表示するので、この条件が何であるかわかりません。 httpsステータスコードですか、それとも失敗したリクエストですか?もう少し詳しく説明してください。
申し訳ありません。コメントを追加できません。 :(これが新しい質問の理由です。
ベストアンサー1
あなたが言及した質問を見ると、次のことがわかります。
OUT=$( curl -qSfsw '\n%{http_code}' http://superuser.com ) 2>/dev/null
# get exit code
RET=$?
if [[ $RET -ne 0 ]] ; then
# if error exit code, print exit code
echo "Error $RET"
...
else
...
fi
組み込み$?
変数は、以前に実行したコマンドの戻りコード(この場合)を含む特殊変数ですcurl
。これは戻りコードです。バイナリからcurl
シェルに戻る、いいえこの例では、HTTPステータスコードコンソール出力のcurl
。
OUT= ...
したがって、RET=$?
その行と上書きの間にコマンドがない場合、実装は$?
エラーcurl
が発生しても戻りコードをエクスポートします(この場合、オプションは戻りを示すため奇妙です)。0
400
-f
curl
22
ところで、その声明に注目してください
OUT=$( curl ... ) 2>/dev/null
言うことはできません。
OUT="$( curl ... 2>/dev/null )"