【问题标题】:How can I qsub a bash script in a job array varying its parameters stored in a array in bash我如何 qsub 作业数组中的 bash 脚本,改变其存储在 bash 数组中的参数
【发布时间】:2017-12-20 17:04:56
【问题描述】:

我有一个脚本,我想用几个不同的参数执行它,我有一个包含所有参数(参数)组合${array[i]} 的数组。 我希望能够使用存储在数组中的所有不同参数提交作业数组:

arr_length=${#submittions[@]}
qsub -t 1-$arr_length myscript <*> 

*这里,我想用-t的值来遍历我的数组,使用这里存储的不同参数,不知道有没有可能。

我读到有一个内置变量 $SGE_TASK_ID。

该数组包含由一个空格分隔的两到七个文件路径和数组中的 arr_length 元素数量。这将是 python 脚本的参数。

【问题讨论】:

  • 为我工作:我 qsubbed 一个带有参数 -t 1-$arr_length 的 bash 脚本,其中包含再次生成 array 所需的所有内容,然后您可以使用 $SGE_TASK_ID,它将采用前面在参数 -t 中提到的值。然后我就做了: python mypyscript.py ${array[$SGE_TASK_ID]} 问题是我想在 qsub 命令中使用内置变量 $SGE_TASK_ID ,你不能。

标签: arrays bash jobs qsub


【解决方案1】:

${!array[@]} 从不包含数组中元素的值。仅包含索引。对于数组元素,在您的脚本中使用 "${array[@]}" 作为

qsub -t 1-${arr_length} myscript "${array[@]}"

例如

array=('foo' 'bar' 'dude')
printf '%s\n' "${!array[@]}"
0
1
2

并查看

的输出
printf '%s\n' "${array[@]}"

【讨论】:

  • 是的,我明白,我无法更好地解释它,这就是问题所在。我想使用选项 -t 1-len_array 中的序列来遍历我的数组值并将其作为作业数组提交。抱歉,我要修改我的问题。
  • @Tamalero:您能否指定更多示例(例如数组的示例值)和您的命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2016-10-13
  • 2018-06-24
相关资源
最近更新 更多