将参数值作为索引号取入数组

时间:2015-10-29 21:06:14

标签: bash

argument_number=$#
for ((i = 2; i <= $argument_number; i++))
do
echo ${lower[$i]]}
done

我想将参数值作为索引号进入数组,例如,如果我的第二个argumnet是15想要得到更低[15]但它给出更低[2]我该怎么办,是否有任何建议,帮助

1 个答案:

答案 0 :(得分:1)

如果我理解正确,数组${lower[@]}的索引由命令行参数给出;在这种情况下,您只需使用:

shift # skip the 1st argument
for index; do # this loops over all command-line arguments; same as: for index in "$@"; do
  echo "${lower[index]}"
done

注意:

  • 我已经双引号 ${lower[index]},以便保护shell免受不必要的解释 - 除非您特别希望shell执行分词并且对变量值进行通配,你应该引用所有变量引用。

  • Bash中的数组下标在算术上下文中进行评估,这就是为什么变量index可以在没有通常$的情况下引用的原因前缀。