Bashスクリプトの構文

Bashスクリプトの構文

.shスクリプトを作成したいと思っています。

  1. というPythonファイルを実行しますmatch_scraper.py
  2. 次のようにpsql dbを更新します。
  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ホームディレクトリへのショートカットです空自ユーザー
  • ~/DocumentsDocumentsホームディレクトリ内のフォルダへのパスです現在ユーザー
  • ~Documentsホームディレクトリを探していますディレクトリディレクトリというユーザーがいない限り、無効なユーザーです

@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...しかし、そのコマンドを実行するには、何らかのコマンド ライン パラメータを渡す必要があると思われます。

関連情報