1

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?

Community
  • 1
  • 1
Let Me Tink About It
  • 15,156
  • 21
  • 98
  • 207

1 Answers1

3

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

Let Me Tink About It
  • 15,156
  • 21
  • 98
  • 207
SLePort
  • 15,211
  • 3
  • 34
  • 44