Ich möchte ein .sh-Skript erstellen, das
- Führen Sie eine Python-Datei mit dem Namen aus
match_scraper.py
, - Aktualisieren Sie eine PSSQL-Datenbank wie gezeigt.
- 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 IhrerSchlagSkripte 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 einerPythonpython
Skript, das Sie VOR dem Pfad zum Skript benötigen
Auch:
~
ist eine Verknüpfung zum Home-Verzeichnis desaktuellBenutzer~asdf
ist eine Verknüpfung zum Home-Verzeichnis für denasdfBenutzer~/Documents
ist der Pfad zumDocuments
Ordner im Home-Verzeichnis desaktuellBenutzer~Documents
sucht 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 dota
tatsächlich, wenn Sie es in der Befehlszeile ausführen?
Und ich weiß es nichtpsqlaber ich vermute, Sie müssen ihm einige Befehlszeilenparameter übergeben, damit dieser update...
Befehl ausgeführt wird?