Bash脚本:没有这样的文件或目录

时间:2017-01-31 11:24:52

标签: python bash terminal scrapy cygwin

所以,我需要运行这个 run.sh 文件,我无法使用Windows默认 CMD 。 所以我安装了 Cygwin64终端并且它确实读取了文件,但是在阅读结束时,它发出错误:

$ /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

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位于run.sh文件夹中。

1 个答案:

答案 0 :(得分:3)

该文件在脚本中作为相对路径引用。

python check_imdb.py movies.json

相对意味着它没有指定整个路径(以/开头),而是相对于当前目录进行解释,您可以通过以下目录找到:

pwd

/开头的路径被认为是绝对的。

重要的是要记住脚本解释相对于当前目录的路径,而不是脚本所在的目录。

您可以在运行前更改脚本目录,其中包含:

cd /cygdrive/c/Python27/Scripts

但是如果你这样做,那么你需要在movies.json文件的命令行上提供一个绝对路径。

更好的是,修改脚本以获得绝对路径:

python /cygdrive/c/Python27/Scripts/check_imdb.py movies.json
相关问题