2017-01-31 9 views
0

Also, ich muss diese run.sh Datei ausführen und ich konnte nicht mit Windows-Standard CMD. So installiert i Cygwin64 Klemme und es liest acctualy die Datei, aber am Ende des Lese, Spams es einen Fehler:Bash-Skript: Keine solche Datei oder Verzeichnis

$ /cygdrive/c/Python27/Scripts/./run.sh 
Starting scraper 
Scrape complete, checking movies with imdb 
C:\python27\python.exe: can't open file 'check_imdb.py': [Errno 2] No such file or directory 

Innen run.sh:

#!/bin/bash 
echo "Starting scraper" 
scrapy runspider cinema_scraper.py -t json --nolog -o - > "movies.json" 
echo "Scrape complete, checking movies with imdb" 
python check_imdb.py movies.json 

check_imdb .py befindet sich im Ordner run.sh.

Antwort

2

Die Datei wird im Skript als relativer Pfad referenziert.

python check_imdb.py movies.json 

Relativ bedeutet, dass es nicht den ganzen Weg nicht angibt (mit/Start) und wird relativ zum aktuellen Verzeichnis interpretiert, die Sie mit herausfinden können:

pwd 

Ein Weg, beginnend mit / gilt als absolut.

Wichtig ist, sich daran zu erinnern, dass ein Skript Pfade relativ zum aktuellen Verzeichnis interpretiert, nicht das Verzeichnis, in dem sich das Skript befindet.

könnten Sie in das Verzeichnis des Skripts ändern, bevor es ausgeführt wird, mit:

cd /cygdrive/c/Python27/Scripts 

Aber wenn Sie das tun, dann werden Sie einen absoluten Pfad in der Befehlszeile auf Ihre movies.json Datei zur Verfügung stellen müssen.

Noch besser wäre es, ändern Sie das Skript einen absoluten Pfad zu haben:

python /cygdrive/c/Python27/Scripts/check_imdb.py movies.json 
Verwandte Themen