【发布时间】:2019-10-11 00:36:13
【问题描述】:
我使用以下 shell 脚本将作业发送到服务器:
#!/bin/bash
#BSUB -J randJobName_ul0vm[1-3]%22
#BSUB -oo <pathToLog>/log/randJobName_ul0vm.o.%J.%I
#BSUB -q "server.q"
#BSUB -n 2
#BSUB -R "span[hosts=1]"
JOB_ID=$LSB_JOBID
SGE_TASK_ID=$LSB_JOBINDEX
JOB_NAME=$LSB_JOBNAME
Id=$((SGE_TASK_ID-1))
declare -a Input
Input[0]="input1 input2"
Input[1]="input3 input4"
Input[2]="input5 input6"
python pythoncode.py parameter1 ${Input[${Id}]}
因此,它为 pthoncode.py 提供以下输入:
parameter1 input1 input2
parameter1 input3 input4
parameter1 input5 input6
我怎样才能修改它以便它也提供以下输入?
parameter2 input1 input2
parameter2 input3 input4
parameter2 input5 input6
注意这里的parameter1被parameter2替换了。
我使用了以下代码,但它显示索引超出范围。我不明白为什么:
#!/bin/bash
#BSUB -J randJobName_ul0vm[1-6]%22
#BSUB -oo <pathToLog>/log/randJobName_ul0vm.o.%J.%I
#BSUB -q "server.q"
#BSUB -n 2
#BSUB -R "span[hosts=1]"
JOB_ID=$LSB_JOBID
SGE_TASK_ID=$LSB_JOBINDEX
JOB_NAME=$LSB_JOBNAME
Id=$((SGE_TASK_ID-1))
declare -a Input
Input[0]="input1 input2"
Input[1]="input3 input4"
Input[2]="input5 input6"
python pythoncode.py parameter1 ${Input[${Id}]}
python pythoncode.py parameter2 ${Input[${Id}]}
【问题讨论】:
-
每次您将要使用它时打印
${Input[${Id}]},以确保您的索引有效并且值符合您的预期。对于您的“索引超出范围”,哪一行返回?我们应该假设它是最后一个吗?