0
作業用のbashスクリプトをSGEスクリプトに編集して、クラスターにジョブとして送信しようとしています。SGEへのサブミットスクリプトを作成しようとしています
現在、私が持っている:
#!/bin/bash
# Perform fastqc on files in a specified directory.
for ((j=1; j <=17; j++))
do
directory=/data4/una/batch"$j"/
files=$""$directory"/*.fastq.gz"
batch=$"batch_"$j""
outfile=$""$batch"_submit_script.sh"
echo "#!/bin/bash">>$outfile;
echo "# Your job name">>$outfile;
echo "# -N $batch">>$outfile;
echo "# The job should be placed into the queue 'all.q'">>$outfile;
echo "#$ -q all.q">>$outfile;
echo "# Running in the current working directory">>$outfile;
echo "#$ -cwd">>$outfile;
echo "">>$outfile;
echo "# Export some necessary environment variables">>$outfile;
echo "#$ -S /bin/bash">>$outfile;
echo "#$ -v PATH">>$outfile;
echo "#$ -v LD_LIBRARY_PATH">>$outfile;
echo "#$ -v PYTHONPATH">>$outfile;
echo "# Finally, put your command here">>$outfile;
echo "">>$outfile;
echo "#$ for i in $files;">>$outfile;
echo "#$ do;">>$outfile;
echo "#$ fastqc -f fastq -o /data4/una/test/fastq/$i;">>$outfile;
echo "#$done">>$outfile;
echo "">>$outfile;
qsub $outfile;
done
しかし、私はエラーを取得しています:
Unable to read script file because of error: ERROR! invalid option argument "-f"
しかし
fastqc -f fastq -o /data4/una/test/fastq/$i
は私のbashスクリプトで完全に有効なラインです。
思考?
ありがとうございます!
わからないが、過度のセミコロンはであり、 'エコー「#$やる;」>> $ outfile; '' echo "#$ do" >> $ outfile; 'でなければなりません。また、あなたは 'echo $#" $ $ "" $ outfile; 'に$ echo"#$ outfile; 'で空白がありません。 –
こんにちは、入力のおかげで!実際にこのエラーの原因となっていたループのフォーマットが正しくありませんでした。 '#$'でこれらの行を始める必要はありませんでしたので、行は次のようになります。 $ファイル内のiの 'echo"; >> $ outfile; ' ' echo "do" >> $ outfile; ' 'echo" fastqc -f fastq -o/data4/una/test/fastqc $ i ">> $ outfile;' '' echo "done" >> $ outfile; ' ' echo >> >> >> $ outfile; ' ' qsub $ outfile; ' –