我正在学习shell sripting并且卡住了。这是代码 #!/斌/庆典
a=0
myarray[$a]=$1
echo $myarray[$a]
((a+=1))
echo $a
输出:
#./varcheck sa
sa[0]
1
有人请告诉我为什么数组的名称会被我想要分配给数组的第0个索引的参数替换。
答案 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.