wget batch file de linux

Estoy tratando de download imágenes desde el sitio de un fabricante usando wget . Cuando ejecuto el command desde el shell, funciona bien. Pero cuando lo ejecuto desde un file obtengo un file de marcador de position.

Aquí está el command:

 wget --wait=2 --output-document=1000.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=8cb7afa6-73bf-4f9f-b251-38dc652779c9&size=large' 

Esto es lo que parece en un file:

 wget --wait=5 --output-document=1101.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=4d41b2ff-90a4-40c1-9159-2780cd642244&size=large' wget --wait=5 --output-document=1102.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=5e88f32e-48f2-40db-bdbd-53624448392d&size=large' wget --wait=5 --output-document=1103.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=59292a17-ae6f-49df-a028-0a9f71686f80&size=large' 

No puedo entender por qué no funciona como un file de shell por lotes.

¿Sabes que necesitas agregar un indicador x (ejecutar) en Unix para ejecutar un script de shell? Otro error común para los usuarios de DOS es que, por razones de security, a menudo no hay "." en el entorno PATH, por lo tanto, necesita ejecutar "./su-script" en lugar de solo "your-script".

Con respecto al she-bang mencionado en la otra respuesta. Al less en Linux / bin / sh es el shell por defecto utilizado si no se proporciona she-bang dentro del script. Todavía es una buena práctica agregar siempre uno a todos los scripts.

Lo probé aquí, y funcionó bien. ¿Tienes una línea she-bang en la parte superior? #!/path/to/shell

Obtenga la salida de

 which bash 

y

 which wget 

luego agrega la ruta devuelta a bash en la parte superior de tu script con un hash bang (#!). es decir, si bash return / bin / bash usa.

 #!/bin/bash 

A continuación, agregue la ruta devuelta para wget. ejemplo

 /usr/bin/wget --wait=5 --output-document=1101.jpg 'http://distributorcentral.com/resources/productimage 

finalmente, asegúrese de que el script que ha creado sea ejecutable chmod +x name-of-your-script

Si no funciona, intente agregar -x al script para get información de debugging.

 #!/bin/bash -x