sh sra2fq.sh sra2fq.sh: 6: sra2fq.sh: Syntax error: "(" unexpected (expecting "done")

这里运行一个脚本老报错
脚本如下:

cat sra2fq.sh
touch sra2fq.log
cd /data1/jiarongf/learning/cancer-WES/0.sra
## sra2fq.sh
cat ../data/sra2case.txt | while read id
do
   arr=(${id})
   sample=${arr[0]}.sra
   case=${arr[1]}
   echo "time fasterq-dump -p -x -3 -N -P -f --skip-technical -e 16 /data1/jiarongf/learning/cancer-WES/0.sra/${sample} -O /data1/jiarongf/learning/cancer-WES/0.sra/ >> sra2fq.log 2>&1"
   echo "sed s/${sample}/${case}/ ${sample}_1.fastq > ${case}_1.fastq "
   echo "pigz -p 16 ${case}_1.fastq"
   echo "sed s/${sample}/${case}/ ${sample}_2.fastq > ${case}_2.fastq "
   echo "pigz -p 16 -f ${case}_2.fastq"
done

但是一运行

sh sra2fq.sh
sra2fq.sh: 6: sra2fq.sh: Syntax error: "(" unexpected (expecting "done")

原因两个,第一是脚本是win的,和unix的文档字符有所差别,需要清除每行后面的一个字符,可以直接在notepad++中更改


image.png

第二就是打开的服务器sh是dash的,不是bash的,这里直接换命令即可

bash sra2fq.sh
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容