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

Get an element of a list inside a command in SHELL script

我想运行一个具有指定参数设置的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

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

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

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

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