Bash-Skriptsyntax

Bash-Skriptsyntax

Ich möchte ein .sh-Skript erstellen, das

  1. Führen Sie eine Python-Datei mit dem Namen aus match_scraper.py,
  2. Aktualisieren Sie eine PSSQL-Datenbank wie gezeigt.
  3. Rufen Sie zur Ausführung einen Scrapy Spider auf.

Wie rufe ich diese Befehle richtig auf, wenn ich das .sh-Skript erstelle? Das ist, was mir eingefallen ist:

#!/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

Antwort1

Zuerst müssen Sie sicherstellen, dass jede Zeile/jeder Teil IhrerSkripte funktionieren in einer Shell (außerhalb eines Skripts). Ich kann nicht sagen, ob Ihr Skript funktioniert, also müssen Sie das selbst prüfen.

Und zur Durchführung einerpythonSkript, das Sie VOR dem Pfad zum Skript benötigen

Auch:

  • ~ist eine Verknüpfung zum Home-Verzeichnis desaktuellBenutzer
  • ~asdfist eine Verknüpfung zum Home-Verzeichnis für denasdfBenutzer
  • ~/Documentsist der Pfad zum DocumentsOrdner im Home-Verzeichnis desaktuellBenutzer
  • ~Documentssucht nach dem Home-Verzeichnis desVerzeichnisBenutzer, der ungültig ist, es sei denn, Sie haben einen Benutzer namens Directory

Wie @muru bemerkte, meinten Sie wahrscheinlich ~/Documents. Ihr Bash-Skript würde also wahrscheinlich ungefähr so ​​aussehen

#!/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

Auch hier weiß ich nicht, ob das funktioniert, da ich keine Ahnung habe, ob jede Zeile funktioniert. Funktioniert es beispielsweise python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dotatatsächlich, wenn Sie es in der Befehlszeile ausführen?

Und ich weiß es nichtaber ich vermute, Sie müssen ihm einige Befehlszeilenparameter übergeben, damit dieser update...Befehl ausgeführt wird?

verwandte Informationen