90

URL が存在する (200 を返す) かどうかを true または false として評価する単純なシェル (+curl) チェックを探しています。

4

2 に答える 2

150

を使用--failすると、失敗したリクエストの終了ステータスがゼロ以外になります。を使用--headすると、このチェックには必要ないため、ファイルの内容のダウンロードが回避されます。を使用--silentすると、チェック自体によってステータスまたはエラーが発行されるのを回避できます。

if curl --output /dev/null --silent --head --fail "$url"; then
  echo "URL exists: $url"
else
  echo "URL does not exist: $url"
fi

サーバーが HEAD リクエストを拒否する場合、別の方法として、ファイルの最初のバイトのみをリクエストします。

if curl --output /dev/null --silent --fail -r 0-0 "$url"; then
于 2012-08-30T14:24:33.077 に答える