2017-11-28 9 views
3

私はカールを使用して、ページの応答コードを取得するには、このコマンドを使用しています:"if"文を端末にカールさせて使用するか?

curl -s -o /dev/null -w "%{http_code}" 'https://www.example.com' 

応答コードが200であれば、私は自分のコンピュータ上の特定のファイルを削除したいです。 200でない場合は、何もしないでください。

これを行う最も簡単な方法は何ですか?

答えて

5

command substitutionを介して)結果をシェル変数に格納し、値を単純な0​​でテストすることができます。あなたが望むすべてがシンプルrmある場合、あなたはそれを短縮することができ

#!/bin/bash 
code=$(curl -s -o /dev/null -w "%{http_code}" 'https://www.example.com') 
if [[ $code == 200 ]]; then 
    rm /path/to/file 
    # other actions 
fi 

:たとえば、bashで一般的なPOSIXシェルで

#!/bin/bash 
[[ $code == 200 ]] && rm /path/to/file 

、あなたはあまり柔軟性を使用する必要があります[コマンドと変数を引用:

#!/bin/sh 
code=$(curl -s -o /dev/null -w "%{http_code}" 'https://www.example.com') 
if [ "$code" = 200 ]; then 
    rm /path/to/file 
fi 

を追加完全なクラスのコード(例: 2xx)、あなたはワイルドカードを使用することができます。

#!/bin/bash 
[[ $code == 2* ]] && rm /path/to/file 

caseコマンド(例here)。

+1

削除された回答で@randomirが指摘したように、 'curl'は404でも成功するため、手動2xxチェックが必要です(終了コードをチェックするのではなく)。 –

関連する問題