BASH SCRIPT:如何在另一个变量中使用变量

时间:2011-08-11 11:32:53

标签: bash

我需要存储在数组中传递的命令行参数

我的命令是

./test1.sh 2 4 6

现在我需要在数组中存储2 4 6并使用..

s1=$#     
"it tells how many arguments are passed."


for (( c=1; c<=$s1; c++ ))

do

     a[$c]}=${$c}

我已经写了${$c}来获取参数值,但它显示的是错误的替代。

3 个答案:

答案 0 :(得分:7)

这将为您提供一个包含参数的数组:args=("$@")

你可以这样打电话给他们:echo ${args[0]} ${args[1]} ${args[2]}

答案 1 :(得分:1)

bash变量可以是{$$ VARNAME的indirectly referencedversion 2中的$ {!VARNAME} 所以你的作业陈述必须是:

a[$c]=${!c} 

eval a[$c]=\$$c

答案 2 :(得分:0)

您始终可以选择第一个参数并将其删除。使用$1shift

c=1
while [ $# -gt 0 ]; do
    a[$c]=$1
    c=$((c+1))
    shift
done