Sintaxe do script Bash

0

Eu quero criar um script .sh que irá

  1. executa um arquivo python chamado match_scraper.py ,
  2. atualize um db do psql como mostrado,
  3. chame uma aranha escamosa para executar.

Quando eu crio o script .sh, como faço para chamar esses comandos corretamente? Foi isso que eu criei:

#!/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
    
por andrewrmunro 02.05.2016 / 20:51

1 resposta

3

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 pasta Documents 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... ?

    
por IMTheNachoMan 02.05.2016 / 21:20