3 votos

Cómo crear descargas recursivas y cambiar el nombre de script bash

Necesito hacer un script bash que descargue una imagen con curl y luego cambie el nombre del archivo, espere 5 minutos y luego vuelva a descargar el archivo y cambie el nombre nuevamente para que el nuevo archivo no reemplace el archivo anterior. Entiendo la parte de espera y descarga de rizos, pero no puedo hacer que el script cambie el nombre de los nuevos archivos de forma recursiva. Tendría que cambiar el nombre de los archivos como: latest.jpg -> latest1.jpg y luego el siguiente latest.jpg -> latest2.jpg. ¡Por favor ayuda!

 #!/bin/bash
while true
do
    curl -O link.com/latest.jpg
    let "i++"
    mv latest.jpg $ilatest.jpg
    sleep 5m
done
 

3voto

Me gustaría cambiar dos cosas para hacer que funcione

  • la variable es necesario poner en {} que lo separa del resto del texto (cómo debe bash sabe que la variable no se llama ilatest de otra manera?
  • sleep espera que el tiempo de sueño en cuestión de segundos

Esto le da a usted

#!/bin/bash
i=0
while true
do
    curl -O link.com/latest.jpg
    let "i++"
    mv latest.jpg latest-${i}.jpg
    sleep $((5*60))
done

Además, el tener la sleep como parte del código del bucle, será necesario que usted presione ^C dos veces para terminar el bucle. Es posible que desee probar el siguiente lugar

#!/bin/bash
i=0
s=0
while sleep $s
do
    curl -O link.com/latest.jpg
    let "i++"
    mv latest.jpg latest-${i}.jpg
    let 's=5*60'
done

-2voto

Igor Voltaic Puntos 76

Haría esto como una sola línea simplemente guardando el archivo en una nueva ubicación. No puedo ver ninguna razón para mover archivos.

 i=0; while :; do curl link.com/latest.jpg -o ${I}latest.jpg && sleep $(( 5 * 30 )) && (( i++ )); done
 

Supongo que este script tarda mucho tiempo en ejecutarse y poder cerrar la terminal o cerrar sesión sugiere usar el comando nohup

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X