slurm——数组两个变量



我使用slurm在HPC上运行以下bash脚本:

#!/bin/bash
#SBATCH --job-name test
#SBATCH --ntasks 10
#SBATCH --time 00-01:00
#SBATCH --output out
#SBATCH --error err
#SBATCH --array=0-9
readarray -t VARS < list_VAR.txt
VAR=${VARS[$SLURM_ARRAY_TASK_ID]}
export VAR
bash data_0_"$VAR".sh

上面的bash脚本向HPC发送10个作业(#SBATCH --array=0-9)以运行data_0_"$VAR".sh脚本,其中"$VAR"是包含在list_VAR.txt文件中的给定字符串。

让我们假设现在我有第二个list_VAR_2.txt文件,其中包含从0到3的数字列表,我想将其应用于上面的job-arraylist_VAR.txt。然后要运行的data_0_"$VAR".sh脚本将转换为data_"$VAR_2"_"$VAR".sh

是否有办法将这个进一步的变量列表list_VAR_2.txt添加到bash脚本?

感谢#####################

更新list_VAR.txt

aa
bh
wwe
ftq
juu
d
8i
yz5
qq1p
m75

list_VAR_2.txt

0
1
2
3

您可以像对第一个文件那样将list_VAR_2.txt内容加载到数组中。然后循环数组来构建bash命令。

,

#!/bin/bash
readarray -t VARS < list_VAR.txt
readarray -t VARS_2 < list_VAR_2.txt
for VAR in "${VARS[@]}"
do
for VAR_2 in "${VARS_2[@]}"
do
bash data_"$VAR_2"_"$VAR".sh
done
done

或者通过指定所需数组元素的索引来构建bash命令。

bash data_"${VARS[INDEX1]}"_"${VARS_2[INDEX2]}".sh

相关内容

  • 没有找到相关文章

最新更新