2016-11-04 7 views
1

2つのパラメータを変更しながら、母集団遺伝学のための 'plink1.9'プログラムからコマンドを実行しようとしています。コマンドラインプログラムでネストされたループ

以下のコードでは、最初のパラメータiは1または100であり、2番目のパラメータjは0.4または0.8です。私はこれが4つの異なる出力を生成し、それぞれが出力ファイル名に対応する入力パラメータ値を含むことを願っています。

これは私のコードですが、 '予期しないトークンの近くで構文エラーが発生しました'というエラーが表示されます。

for i in 1 100 
do 
    for j in 0.4 0.8 
     do 
     plink --bfile myfile \ 
       --indep-pairwise ${i} 50 ${j} \ 
       --out myfile_${i}_50_${j}_indep 
     done 
done 

私がこれをどのように修正できるかについてのご意見がありましたら、私は非常に感謝しています。私はこれについていくつかのバリエーションを試しました。理想的には、複数のコマンドをループで実行し、2つではなく3つの変数をすべて変更し、各変数に2つ以上の可能な値を設定しますが、動作するまで単純にしておきます。

+2

スクリプトは( '\ r'が予想されるキーワードとして認識されていないん、その場合には)DOSの改行コードを使用していますか?このような場合、 'bash' 4.4ではもっと明確なエラーメッセージが表示されます。 – chepner

答えて

1

これは、Bash以外のデフォルトのシェルを使用している可能性があります。あなたがGNU Parallelを使用してスクリプトを簡素化することができ

注:

parallel plink --bfile myfile \ 
      --indep-pairwise {1} 50 {2} \ 
      --out myfile_{1}_50_{2}_indep ::: 1 100 ::: 0.4 0.8 
関連する問題