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
  • 13,762
  • 16
  • 86
  • 184

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
  • 13,762
  • 16
  • 86
  • 184
SLePort
  • 14,775
  • 3
  • 30
  • 41