Primeiro, você precisa garantir que cada linha / parte de suas bash trabalho de script em um shell (fora de um script). Eu não posso dizer se o seu vai assim você terá que verificar isso sozinho.
E para executar um script python , você precisa de python
BEFORE caminho para o script
Além disso:
-
~
é um atalho para o diretório inicial do atual usuário -
~asdf
é um atalho para o diretório inicial do asdf usuário -
~/Documents
é o caminho para a pastaDocuments
no diretório inicial do atual usuário -
~Documents
está procurando o diretório inicial do usuário do Diretório que é inválido, a menos que você tenha um usuário chamado Diretório
Como @muru apontou, você provavelmente quis dizer ~ / Documents. Então, o seu script bash provavelmente seria parecido com isto
#!/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
Mais uma vez, não sei se isso funcionará, pois não sei se cada linha funcionará. Por exemplo, python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dota
realmente funciona quando você o executa na linha de comando?
E eu não sei psql mas suspeito que você precise passar algum parâmetro de linha de comando para fazer com que ele execute o comando update...
?