bash脚本为for循环中的变量赋值

bash脚本为for循环中的变量赋值,bash,shell,slurm,Bash,Shell,Slurm,我试图在不同的目录中提交每个批处理作业,即.test1/,.test2/,.test3/。因此,我遍历./test*目录并设置变量$SLURM\u SUBMIT\u DIR,它控制我提交作业的目录 #!/bin/bash -l # script.sh DIRS="./test*/" for dir in $DIRS do export $SLURM_SUBMIT_DIR =$dir echo $dir sbatch submitfile done 结果如下: script.

我试图在不同的目录中提交每个批处理作业,即.test1/,.test2/,.test3/。因此,我遍历./test*目录并设置变量$SLURM\u SUBMIT\u DIR,它控制我提交作业的目录

#!/bin/bash -l
# script.sh

DIRS="./test*/"

for dir in  $DIRS
do
  export $SLURM_SUBMIT_DIR =$dir
  echo $dir
  sbatch submitfile
done
结果如下:


script.sh:第9行:导出:`=./test1scan/':不是有效的标识符
/测试1扫描/
提交的批处理作业312892
script.sh:第9行:导出:`=./test2scan/':不是有效的标识符
/测试2扫描/
提交的批处理作业312893
script.sh:第9行:导出:`=./test3scan/':不是有效的标识符
/测试3扫描/
提交的批处理作业312894

编辑:
多亏了切普纳,错误消失了。但是,作业是在我运行此bash脚本的目录中提交的。有什么方法可以提交不同目录中的每个作业吗?

导出的参数中,不能在等号后面加空格:

export "$SLURM_SUBMIT_DIR=$dir"

删除了空格,但仍然是相同的错误:
SLURM\u SUBMIT\u DIR
的值是多少?或者这是您要设置的变量的名称?在这种情况下,您需要删除
$
,即,
导出“SLURM\u SUBMIT\u DIR=$DIR”
。谢谢!现在它可以正常工作了。但是作业没有提交到不同的目录中……您正在寻找
-D
选项来
sbatch
?是的!最后发现-D也可以在命令行中使用!