Reputation: 16102
I want to access the array index variable while looping thru an array in my bash shell script.
myscript.sh#!/bin/bash
A=('foo' 'bar' 'baz' 'bat')
for i in ${A[*]}; do
echo $i
done
Actual result
foo
bar
baz
bat
Desired result
0
1
2
3
How do I alter my script to achieve this?
Upvotes: 1
Views: 2525
Reputation: 15461
You can loop over index using indirect reference syntax (since Bash 3) :
#!/bin/bash
A=('foo' 'bar' 'baz' 'bat')
for i in ${!A[*]}; do # replace ${A[*]} with ${!A[*]}
echo $i
done
For more : How to iterate over associative arrays in Bash
Upvotes: 3