カールなどのコマンドがエラーなしで完了したことを確認するには?

カールなどのコマンドがエラーなしで完了したことを確認するには?

カールを使用してHTTPポストを介してサーバーにファイルをアップロードしています。

curl -X POST [email protected] server-URL

コマンドラインからこのコマンドを手動で実行すると、サーバーから応答を受け取ります(例:)"Upload successful"。しかし、スクリプトを介してこのカールコマンドを実行したい場合は、POSTリクエストが成功したことをどうやって知ることができますか?

ベストアンサー1

curl's --failオプションを使用することもできますが、まずテストする必要があります。

man curl

-f、--fail(HTTP)サーバーエラー時に自動的に失敗します(出力なし)。これは主に、失敗した試みをよりよく処理するためにスクリプトなどをより有効にするために行われます。通常の状況でHTTPサーバーが文書を渡すことができない場合は、状況を説明するHTML文書を返します(通常、理由と追加情報も説明します)。このフラグは、カールがこの情報を出力しないようにし、エラー22を返します。

          This method is not fail-safe and there are occasions where  non-
          successful  response  codes  will  slip through, especially when
          authentication is involved (response codes 401 and 407).

だからあなたはこれを行うことができます:

args="-X POST [email protected] server-URL"
curl -f $args && echo "SUCCESS!" ||
    echo "OH NO!"

おすすめ記事