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

时间:2016-04-23 02:02:30

标签: arrays bash shell loops

我希望在我的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

如何更改脚本以实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以使用间接引用语法(since Bash 3)循环索引:

#!/bin/bash

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

更多信息:How to iterate over associative arrays in Bash