将数组传递给qsub脚本

时间:2014-11-07 22:10:40

标签: arrays bash variables qsub

如何通过PBS环境中的qsub作业脚本将数组作为变量列表传递?

例如:

arr1=(1 2 3); arr2(a b c); qsub -v array1=("${arr1[@]}"), array2=("$arr2[@]") job_script.bash

其中job_script.bash包含数组变量array1array2

当我尝试运行上述命令提交我的工作时,我收到以下错误:

-bash: syntax error near unexpected token `('

我在语法中遗漏了什么?

我查了很多论坛寻求帮助,但没有找到任何关于如上传递数组的内容。

任何人都可以帮我解决上述情况吗?

2 个答案:

答案 0 :(得分:0)

问题似乎与qsub无关,而是您没有在shell中正确创建arr2变量...

#  You did this...
arr1=(1 2 3); arr2(a b c); 

#  You meant this...
arr1=(1 2 3); arr2=(a b c); 

答案 1 :(得分:-1)

我每天都使用qsub。也许是一个愚蠢的答案,但问题可能是由于你在-v参数中的两个数组变量之间留下的空间?

即。你的qsub命令应该是 " qsub -v array1 =(" $ {arr1 [@]}"),array2 =(" $ arr2 [@]")job_script.bash"