Я хочу создать скрипт .sh, который будет
- выполнить файл Python с именем
match_scraper.py
, - обновите базу данных psql, как показано,
- вызвать паука-скребня для выполнения.
Когда я создаю скрипт .sh, как мне правильно вызывать эти команды? Вот что у меня получилось:
#!/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
решение1
Сначала вам нужно убедиться, что каждая строка/часть вашегоБашскрипт работает в оболочке (вне скрипта). Я не могу сказать, будет ли это у вас, поэтому вам придется проверить это самостоятельно.
И чтобы выполнитьпитонскрипт вам нужен python
ПЕРЕД путем к скрипту
Также:
~
это ярлык для домашнего каталогатекущийпользователь~asdf
это ярлык для домашнего каталога дляasdfпользователь~/Documents
это путь кDocuments
папке в домашнем каталогетекущийпользователь~Documents
ищет домашний каталогКаталогпользователь, который недействителен, если у вас нет пользователя с именем Directory
Как указал @muru, вы, вероятно, имели в виду ~/Documents. Так что ваш bash-скрипт, вероятно, будет выглядеть примерно так
#!/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
Опять же, я не знаю, сработает ли это, так как понятия не имею, сработает ли каждая строка. Например, python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dota
работает ли это на самом деле, если запустить его в командной строке?
И я не знаюpsqlно я подозреваю, что вам нужно передать ему какой-то параметр командной строки, чтобы заставить его выполнить эту update...
команду?