1

プログラム (glsearch36) を使用して分析したい 50 個の異なる fasta ファイルがあります。ファイルの番号は 3163proph00.fa ~ 3163proph49.fa です。

これらの 50 個のほぼ同一のジョブを、SGE キューイング システムをアレイ ジョブとして使用するクラスターに送信したいと考えています。

1 つの問題は、SGE では SGE_TASK_ID を 1 から 50 にする必要があることです。そのため、最初に変数 i を作成し、1 を引いて 0 を取得する必要がありました。次に、数字の先頭にゼロがあるため、j を作成しました。

私は bash にあまり精通していないので、SGE_TASK_ID から i から j に移動する際に何らかの構文エラーを犯したことは確かです。

このファイルを送信すると、「無効な変数名」というエラーが表示されます。

どんな助けでも大歓迎です。

ありがとうございました、

#!/bin/bash
#$ -cwd
#$ -t 1-50
#$ -e glsearch.err
#$ -o glsearch.out
#$ -N glsearch

#  really the files are 00-49
i=$(($SGE_TASK_ID - 1))
j= printf "%02d" "$i"
echo $j
/g/bor/x86_64/bin/glsearch36 -T 1 /g/bor/Viruses/3163_proph_split50/3163proph$j.fa /g/bor/Viruses/prophage_region.fna > glsearch_3163proph$j.txt
4

2 に答える 2

2
  • $((...))必要ありません
  • space前後なし=
  • 入れるprintf_$(...)

    i=$((SGE_TASK_ID - 1))
    j=$(printf "%02d" "$i")
    
于 2012-03-05T12:54:00.973 に答える