我有50个不同的fasta文件,我想用程序(glsearch36)来分析。 这些文件编号为3163proph00.fa - 3163proph49.fa。
我想将使用SGE排队系统作为阵列作业的这些50个几乎相同的作业提交给集群。
一个问题是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
答案 0 :(得分:1)
$
((...))
space
之前和之后=
将 printf
加入 $(...)
i=$((SGE_TASK_ID - 1))
j=$(printf "%02d" "$i")
答案 1 :(得分:0)
我怀疑你的作业是在posix_compliant队列中运行的,/ bin / csh是默认的shell。因为队列是posix_compliant你的#!将忽略该行,并使用默认shell。您可以使用-S指令覆盖默认shell到Grid Engine。
#$ -S /bin/bash