Синтаксис скрипта Bash

Синтаксис скрипта Bash

Я хочу создать скрипт .sh, который будет

  1. выполнить файл Python с именем match_scraper.py,
  2. обновите базу данных psql, как показано,
  3. вызвать паука-скребня для выполнения.

Когда я создаю скрипт .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работает ли это на самом деле, если запустить его в командной строке?

И я не знаюно я подозреваю, что вам нужно передать ему какой-то параметр командной строки, чтобы заставить его выполнить эту update...команду?

Связанный контент