从bash shell脚本循环访问数组索引变量?

问题描述:

我想通过我的bash shell脚本中的数组循环访问数组索引变量。从bash shell脚本循环访问数组索引变量?

myscript.sh

#!/bin/bash 
AR=('foo' 'bar' 'baz' 'bat') 
for i in ${AR[*]}; do 
    echo $i 
done 

上述脚本的结果是:

foo 
bar 
baz 
bat 

我所寻求的结果是:

0 
1 
2 
3 

我如何改变我的脚本为了达成这个?

你也可以遍历使用间接引用语法(since Bash 3)指数:How to iterate over associative arrays in Bash

+0

+1并接受:

#!/bin/bash AR=('foo' 'bar' 'baz' 'bat') for i in ${!AR[*]}; do # replace ${AR[*]} with ${!AR[*]} echo $i done 

更多。但是,您能简单地在这里解释一下为什么*该解决方案有效?或者链接到一些文档? – Mowzer

+0

更新了我的答案。 – SLePort