web-dev-qa-db-ja.com

curlが失敗した場合にシェルスクリプトを停止する方法

スクリプトに間違ったパラメーターを渡したときにcurlを使用したスクリプトが失敗しましたが、スクリプトは実行を続けます。 curl -f/--failパラメータを使用しようとしましたが、問題は解決しません。スクリプトを停止する最良の方法は何ですか?

私は自分の間違いを見つけました。 curlコマンドを別のコマンドに使用しました

echo `curl --fail ... || exit 1`

エコーコマンドを削除した後、curlは正しく機能するようになります。回答ありがとうございます、それも便利です。

4
Steelflax

$?を使用して終了コードを確認できます。

exit_status = $?
if [ $exit_status != 0 ]
  then
    exit $exit_status
fi

終了ステータスを分析する場合は、Exit codesページのman curlセクションを参照してください。失敗した理由に応じて、さまざまなコードがあります。

EDIT:command1 || command2も使用できます。 command2は、command1が失敗した場合にのみ実行されます。

curl .... || exit 1
7
ssssteffff

exitがゼロ以外の終了コードで終了する場合は、curlだけです。

curl http://www.example.com || exit 1

または、エラー時にスクリプトを終了させます。

set -e
curl http://www.example.com
2
choroba