2016-04-23 176 views
0

我想通過我的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 

我如何改變我的腳本爲了達成這個?

回答

2

你也可以遍歷使用間接引用語法(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