在bash中为数组赋值

时间:2015-03-18 14:50:41

标签: bash

我正在学习shell sripting并且卡住了。这是代码        #!/斌/庆典

a=0
myarray[$a]=$1
echo $myarray[$a]
((a+=1))
echo $a

输出:

#./varcheck sa
sa[0]
1

有人请告诉我为什么数组的名称会被我想要分配给数组的第0个索引的参数替换。

1 个答案:

答案 0 :(得分:4)

echo "${myarray[$a]}"

是输出数组成员的方式。可替代地

echo "${myarray[a]}"

因为除非你使用关联数组,否则保证索引是算术上下文。因此,您实际上可以删除一行:

a=0
myarray[a]=$1
echo "${myarray[a++]}" # Get element at zeroth index
echo $a # Get post-incremented expansion of a.