Development Tip

셸에 URL이 존재하고 아마도 컬이 있는지 확인하는 방법은 무엇입니까?

yourdevel 2020. 12. 7. 20:59
반응형

셸에 URL이 존재하고 아마도 컬이 있는지 확인하는 방법은 무엇입니까?


URL이 존재하거나 (200을 반환) 그렇지 않은 경우 true 또는 false로 평가되는 간단한 셸 (+ curl) 검사를 찾고 있습니다.


를 사용 --fail하면 실패한 요청에서 종료 상태가 0이 아닙니다. 를 사용 --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

나는 wget이 CURL보다 더 나은 도구라고 생각합니다. 기억해야 할 옵션이 적고 실제로 bash에서 진실 값을 확인하여 기본적으로 성공했는지 여부를 확인할 수 있습니다.

if wget --spider http://google.com 2>/dev/null; then
  echo "File exists"
else
  echo "File does not exist"
fi

--spider옵션은 wget이 파일을 다운로드하는 대신 파일을 확인하도록하고 2> /dev/nullwget의 stderr 출력을 무음으로 만듭니다.

참고 URL : https://stackoverflow.com/questions/12199059/how-to-check-if-an-url-exists-with-the-shell-and-probably-curl

반응형