在SHELL脚本中获取命令中的列表元素

时间:2015-05-14 19:02:05

标签: list shell iteration

我想运行具有指定参数设置的Java应用程序,并且一些参数将来自列表的迭代。 这可能是正确的方法吗?非常感谢!

outs="/home/user/this.vcf /home/user/that.vcf  /home/user/simulation/control.vcf"
arr=($outs)

ending=3

for ((i=1;i<=ending;i++)); do
java -Xmx32g -jar /home/user/something.jar \
-o $arr[i] \
done

2 个答案:

答案 0 :(得分:1)

您不需要硬编码计数。只需像这样迭代数组:

outs=( "/home/user/this.vcf" "/home/user/that.vcf" "/home/user/simulation/control.vcf" )

for word in "${outs[@]}"; do
   java -Xmx32g -jar /home/user/something.jar -o "$word"
done

答案 1 :(得分:0)

你缺少括号。另外,请注意shell数组是从零开始的,因此需要修改for语句:

for ((i=0;i<ending;i++)); do
java -Xmx32g -jar /home/user/something.jar \
-o ${arr[i]} \
done