我想传递一个作业的指数在作业数组作为参数传递给另一个bash脚本。
numSims=3 numTreatments=6 # uses numTreatments top rows of parameters.csv maxFail=10 j=1 while [ $j -le $numSims ]; do bsub -q someQueue -J "mySim[1-$numTreatments]%2" ./another_script.sh $LSB_JOBINDEX $j $maxFail let j=j+1 done
这里的最终想法是提交,每个1,..., numTreatments
, numSims
作业(模拟)。 我想在同一时间(运行两个作业%2
)。 输出的格式为XX_indexNumber_simNumber,其中indexNumber 1,...,运行numTreatments
和simNumber 1,..., numSims
。
理想的情况下,一切都提交了,因为这脚本的一部分将具有相同的作业ID。 这还没有设置正确,因为与同所有作业j
被分配一个不同的作业ID。 我眼前的问题是,another_script.sh无法识别$LSB_JOBINDEX
作为输入-它认为$j
和$maxFail
作为第一和仅有的两个传递的参数。 当我把一些其他的变量来代替$LSB_JOBINDEX
,没有任何问题。 我究竟做错了什么?
编辑 -有些事情我已经试过: "$LSB_JOBINDEX"
${LSB_JOBINDEX}
, %I
和I=$LSB_JOBINDEX; bsub ... $I $j $maxFail
I=$LSB_JOBINDEX; bsub ... $I $j $maxFail