Estoy tratando de hacer un programa que puede convertir una serie de escaneos manga en un archivo pdf, y no quiero tener que intentar descargar la imagen para determinar si tengo la url correcta. ¿Existe un comando de shell scripting que pueda usar para verificar si existe una página web?¿Cómo puedo determinar si existe una página web con scripts de shell?
Respuesta
Bajo un * NIX, puede utilizar curl
para emitir un simple petición HEAD
(HEAD
sólo pregunta por los encabezados, no el cuerpo de la página):
curl --head http://myurl/
, entonces puede tomar sólo la primera línea, el cual contiene el código de estado HTTP (200 OK, 404 no encontrado, etc.):
curl -s --head http://myurl/ | head -n 1
Y a continuación, comprobar si tienes una respuesta decente (código de estado es 200 o 3 **):
curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].."
Esto mostrará la primera línea si el código de estado es correcto, o nada si no lo es. También puede canalizar que a/dev/null para obtener ninguna salida, y el uso de $?
para determinar si ha funcionado o no:
curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].." > /dev/null
# on success (page exists), $? will be 0; on failure (page does not exist or
# is unreachable), $? will be 1
EDITAR-s
simplemente le dice a curl
para no mostrar una "barra de progreso".
Para hacer esto con menos cadenas de análisis, y para verificar si hay redirecciones a páginas no existentes, use este 'curl --silent --head --location --output/dev/null --write-out '% {http_code}' http://en.wikipedia.org/wiki/tla | grep '^ 2' ' – bukzor
Uso --fail: http://stackoverflow.com/a/12199125/376366 –
Secuencia de comandos para automatizar la validación de varios archivos: https://gist.github.com/igilham/12eb33ab8a86f1e815d2 – IanGilham
wget o cURL hará el trabajo. Consulte aquí wget o cURL para obtener detalles y ubicaciones de descarga. Proporcione el URL a estas herramientas de línea de comandos y verifique la respuesta.
Pfff ... ¿por qué los votos a favor (sin explicación, tenga en cuenta) si la respuesta es correcta, breve e informativa? –
No voté, pero si tuviera que adivinar, es porque las respuestas de solo URL están [desaconsejadas] (https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain- links-elsewhere-really-good-answers). – zneak
Gracias. TBH, la pregunta era "¿Hay un comando de script de shell que pueda usar para verificar si existe una página web?" y mi respuesta fue "wget o cURL harán el trabajo", más enlaces a cada comando y una explicación de que la respuesta de esas invocaciones de comando podría ser revisada. Esa no es una respuesta de solo URL, por cualquier medida, y fue tan informativa como la otra respuesta (revisión) que estaba disponible en ese momento: https://stackoverflow.com/revisions/2924444/1. Por desgracia, al parecer, un mal día de karma :-) –
Utilice CURL para obtener el código de estado y verificar los valores requeridos.
status=$(curl -s --head -w %{http_code} http://www.google.com/ -o /dev/null)
echo $status
primer lugar asegúrese de que no hay ninguna autorización issue.If falta una autorización, se proporciona el nombre de usuario y contraseña .Create un archivo de script de shell (checkURL.sh) y pega el siguiente código.
Espero que esto te ayude.
checkURL.sh
yourURL="http://abc-repo.mycorp.com/data/yourdir"
if curl --output /dev/null --silent --head --fail "$yourURL"
then
echo "This URL Exist"
else
echo "This URL Not Exist"
fi
Su trabajo para mí en Nexus y otro repositorio.
Siempre puede usar wget
; Hago como el código es más simple.
if [[ $(wget http://url/ -O-) ]] 2>/dev/null
then echo "This page exists."
else echo "This page does not exist."
fi
El uso de la opción -O-
con wget
significa que se va a tratar de dar salida a los contenidos de la página, pero sólo si existe. Entonces, si no hay ningún resultado, entonces la página no existe. El 2>/dev/null
es solo para enviar la salida (si hay alguna) a la papelera.
Sé que se ha retrasado, pero espero que esto ayude.
- 1. cómo determinar si la página web ha sido modificada
- 2. ¿Cómo puedo determinar si existe un subdirectorio en C#?
- 3. ¿Cómo puedo determinar si un script de shell se está ejecutando con permisos de raíz?
- 4. ¿Cómo puedo determinar si una URL redirige?
- 5. determinar si existe $ _SESSION superglobal en PHP
- 6. Cómo determinar si una aplicación web se está ejecutando actualmente
- 7. ¿Existe alguna manera más rápida de verificar si existe una página web externa?
- 8. ¿Cómo puedo determinar si existe una función de base de datos en SQL Server?
- 9. En ColdFusion, ¿cómo puedo determinar si existe una variable de cadena de consulta?
- 10. ¿Cómo uso Ruby para scripts de shell?
- 11. Compruebe si existe un servicio web
- 12. ¿Cómo puedo probar si existe una lista de archivos?
- 13. ¿Cómo cambio una codificación de caracteres de scripts de shell?
- 14. ¿Cómo puedo determinar si existe una función Perl en el tiempo de ejecución?
- 15. ¿Cómo puedo determinar si existe un archivo con VBA Excel 2007?
- 16. Compiladores para scripts de shell
- 17. ¿Cómo lidia Jenkins con los scripts interactivos de Shell?
- 18. C# ¿Cómo puedo verificar si existe una URL/es válida?
- 19. ¿Cómo puedo determinar si una página es segura a través de JavaScript?
- 20. ¿Qué significa si [$? -eq 0] mean para scripts de shell?
- 21. ¿Cómo puedo determinar si existe un hash git dado en una rama determinada?
- 22. Cómo verificar si existe una página web. jQuery y/o PHP
- 23. Cómo determinar si existe un ID de proceso
- 24. Usando consulta SQL para determinar si existe una tabla
- 25. ¿Cómo puedo determinar si el ensamblaje de ejecución es una aplicación web o WinForm/consola?
- 26. ¿Cómo determinar si dos páginas web son iguales?
- 27. ¿Cómo puedo determinar si una casilla de verificación está marcada?
- 28. jQuery - ¿Cómo determinar si existe un elemento padre?
- 29. ¿Cuál es la mejor manera de determinar si una página web es para dispositivos móviles?
- 30. ¿Cómo puedo determinar si document.referrer es de mi propio sitio?
¿Qué shell? Shell UNIX? ¿Símbolo del sistema de Windows? Windows Powershell? – zneak
UNIX, supongo, porque tiene una etiqueta de Unix. – thepiercingarrow