我正在尝试向计算节点提交 shell 脚本,但仅在提交作业时才不断遇到此错误。该作业启动但返回错误“...不是有效的标识符”。如果我将代码粘贴到前端,它将执行而不会出现任何错误。任何解决问题的建议将不胜感激。我正在使用的作业文件如下。我以前多次使用过这个脚本,但从未见过这个错误。唯一改变的是我使用了不同的计算集群。
#!/bin/sh -l
#SBATCH --job-name=vcf_selection
#SBATCH -A standby
#SBATCH -t 4:00:00
#SBATCH -N 1 -n 5
module load biocontainers
module load htslib
module load bcftools
echo "compressing files..."
for i in {1..10}
do
bgzip Selected.Inbreds.MAF0.05.RefGenV4.chr$i.vcf.recode.vcf
tabix -h Selected.Inbreds.MAF0.05.RefGenV4.chr$i.vcf.recode.vcf.gz
done
大多数面临类似错误的人建议在指定路径等时避免“=”周围的空格。我的脚本中没有任何可以做到这一点的内容。
前端和计算节点可能具有不同版本的 Bash 或 Sh。对于旧版本的 Bash 和真正的 Sh shell,
{1..10}
可能会出现问题(/bin/sh
通常与 bash
符号相似,但计算节点上可能并非如此)。
为了安全起见,您可以将该部分替换为
$(seq 1 10)
:
for i in $(seq 1 10)