bash shell script iterate through array values

Home -> Programming -> Shell script -> Bourne shells

73579 views

From the computer of: qmchenry (338 recipes)
Created: Aug 30, 2004


Add a comment

Add to:
Add to stumbleuponAdd to del.icio.usDigg itAdd to FURL

Having an array of variables is of no use unless you can use those values somehow. This recipe shows a few methods for looping through the values of an array in the bash shell.

Given the array definition:

names=( Jennifer Tonya Anna Sadie )


The following expression evaluates into all values of the array:

${names[@]}


and can be used anywhere a variable or string can be used.

A simple for loop can iterate through this array one value at a time:

for name in ${names[@]}
do
   echo $name
   # other stuff on $name
done


This scrip will loop through the array values and print them out, one per line. Additional statements can be placed within the loop body to take further action, such as modifying each file in an array of filenames.

Sometimes it is useful to loop through an array and know the numeric index of the array you are using (for example, so that you can reference another array with the same index). The same loop in the example above can be achieved this way, too:

for (( i = 0 ; i < ${#names[@]} ; i++ ))
do
  echo ${names[$i]}
   # yadda yadda
done


In this example, the value ${#names[@]} evaluates into the number of elements in the array (4 in this case). The individual elements of the array are accessed, one at a time, using the index integer $i as ${names[$i]}

Subscribe to the Tech-Recipes Newsletter

You can get tips like this delivered in your email every week!

Enter your Email

We will never, ever sell your email address or spam you.





Related recipes:

  Bourne/bash shell script for loop syntax
  bash shell script declaring/creating arrays
  bash shell script accessing array variables
  Bourne/bash shell script functions
  bash array operations
  Bourne/bash shell scripts: case statement
  Determine if a file is writable by a Bourne script user
  Determine if file exists in a Bourne/bash shell script
  queue and stack using array
  Bourne/bash shell scripts: if statement syntax

 

Sponsored links

 

Login

Nickname

Password

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.