Let Me Tink About It
Let Me Tink About It

Reputation: 16102

Accessing array index variable from bash shell script loop?

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

Answers (1)

SLePort
SLePort

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

Related Questions