Sintaxis del script Bash

Sintaxis del script Bash

Quiero crear un script .sh que

  1. ejecutar un archivo Python llamado match_scraper.py,
  2. actualice una base de datos psql como se muestra,
  3. llama a una araña scrapy para que la ejecute.

Cuando creo el script .sh, ¿cómo llamo esos comandos correctamente? Esto es lo que se me ocurrió:

#!/bin/bash

~Documents/dota2/dotaapi2/ python match_scraper.py 

psql dota2apidb
update games set online=1 where online is null;

~Documents/dota2/gosugamers/gosugamers/spiders/ scrapy crawl dota

Respuesta1

Primero necesitas asegurarte de que cada línea/parte de tuEl script funciona en un shell (fuera de un script). No puedo decir si el tuyo lo hará, así que tendrás que comprobarlo tú mismo.

Y para ejecutar unscript que necesita pythonANTES de la ruta al script

También:

  • ~es un acceso directo al directorio de inicio delactualusuario
  • ~asdfes un acceso directo al directorio de inicio para elasdfusuario
  • ~/Documentses la ruta a la Documentscarpeta en el directorio de inicio delactualusuario
  • ~Documentsestá buscando el directorio de inicio delDirectoriousuario que no es válido a menos que tenga un usuario llamado Directorio

Como señaló @muru, probablemente quisiste decir ~/Documentos. Entonces tu script bash probablemente se vería así

#!/bin/bash

python ~/Documents/dota2/dotaapi2/match_scraper.py 

psql dota2apidb
update games set online=1 where online is null;

python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dota

Nuevamente, no sé si esto funcionará ya que no tengo idea de si cada línea funcionará. Por ejemplo, ¿ python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dotarealmente funciona cuando lo ejecuta en la línea de comando?

Y no lo sépero sospecho que necesitas pasarle algún parámetro de línea de comando para que ejecute ese update...comando.

información relacionada