2012-03-16 5 views
2

私は統計学者だ、と私は最近の研究プロジェクトのためのbashのパイプラインを書いて、それは基本的に、各段階でのbash、PythonとRのスクリプトを呼び出して、メインのbashスクリプトです分析、多くのステップとたくさんのスクリプトがあります。私の友人は私のためにmakefileを作ってもらえると言ったが、スクリプトを書く以外のコンピュータでの経験はほとんどない。私はいくつかの例を見つけましたが、VCのためのものです。私のケースもVCプログラムのようにコンパイルする必要がありますか?誰かが私に彼の経験の一部を教えてもらえますか?例えば 、私はstep1.py、step2.sh、step3.rを呼び出し、step2.shはstep2.1.pyを呼び出す、main.shを持って、step2.2.r私は彼らがメイクファイルでどのようにリンクしていますか?どのようにPython用のmakefileを書き込むには、Rとのbashスクリプト

+0

いいえ、あなたは、Python、Rやbashスクリプトをコンパイルする必要はありません。あなたはMakefileが必要だと思いますか? –

+0

Makeはファイルを作るのに適しています(他のこともできるが)。あるプロセスの出力ファイルが別のプロセスの入力ファイルである場合、特にDAG内のファイルを作成するのに適しています。誰かが入力ファイルのいくつかを修正した場合、Makeは*すべてのものを最新にするために必要なステップを把握し、*実行します。あなたの状況のように聞こえる場合は、お手伝いします。それ以外の場合、Makeはあなたの仕事にとって特に良いツールではなく、それを採用する理由はありません。 – Beta

+0

言語としてのmakeは、非常に強力なマクロ/テキスト代入メカニズムを提供します。あなたのコードがファイル上のデータを操作していないとしても、Bashの上でレイヤー/コーディネーターとしてMakeを使うことは非常に強力です。もしあなたのスクリプトの各間の依存関係の複雑なウェブがあるようです、そしてあなたは、IMO実際にあなたのために非常によく働くかもしれない確認し、これらのスクリプトのすべての上の層を座っているファイルでこれらの依存関係を表現したいと思います。 –

答えて

1
step1: 
    step1.py;\ 
    $(MAKE) step2;\ 
    step3.r 

step2: 
    step2.1.py;\ 
    step2.2.r 

all: step1 
    echo "Done" 

あなたの説明からは、main.shとstep2.shのように聞こえますが、pythonとRスクリプトを呼び出すだけです。もしそうなら、上記のものはそれらを置き換えるMakefileです。彼らに他のステップがある場合、step1またはstep2ターゲットでこれらのbashコマンドを追加できます。このようにMakefileを使用して

はあなたにもデバッグの目的のために、あなたの実行シーケンスの一部のみを実行することができます。

+0

素晴らしい、ありがとうBrant – user1269298

+0

@ user1269298これはあなたのために働いた場合は、答えを受け入れてください。 –

関連する問題