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