我需要存储在数组中传递的命令行参数
我的命令是
./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}
来获取参数值,但它显示的是错误的替代。
答案 0 :(得分:7)
这将为您提供一个包含参数的数组:args=("$@")
你可以这样打电话给他们:echo ${args[0]} ${args[1]} ${args[2]}
答案 1 :(得分:1)
bash变量可以是{$$ VARNAME的indirectly referenced或version 2中的$ {!VARNAME} 所以你的作业陈述必须是:
a[$c]=${!c}
或
eval a[$c]=\$$c
答案 2 :(得分:0)
您始终可以选择第一个参数并将其删除。使用$1
和shift
。
c=1
while [ $# -gt 0 ]; do
a[$c]=$1
c=$((c+1))
shift
done