Bash For Loop Array: Iterate Through Array Values

How do I use bash for loop to iterate thought array values under UNIX / Linux operating systems?

The Bash provides one-dimensional array variables. Any variable may be used as an array; the declare builtin will explicitly declare an array. There is no maximum limit on the size of an array, nor any requirement that members be indexed or assigned contiguously. Arrays are indexed using integers and are zero-based.

To declare an array in bash

Declare and an array called array and assign three values:

array=( one two three )

array=( one two three )

More examples:

files=( "/etc/passwd" "/etc/group" "/etc/hosts" )
limits=( 10, 20, 26, 39, 48)

files=( "/etc/passwd" "/etc/group" "/etc/hosts" )
limits=( 10, 20, 26, 39, 48)

To print an array use:

printf "%sn" "${array[@]}"
printf "%sn" "${files[@]}"
printf "%sn" "${limits[@]}"

printf "%sn" "${array[@]}"
printf "%sn" "${files[@]}"
printf "%sn" "${limits[@]}"

To Iterate Through Array Values

Use for loop syntax as follows:

for i in "${arrayName[@]}"
do
   : 
   # do whatever on $i
done

for i in "${arrayName[@]}"
do
:
# do whatever on $i
done

$i will hold each item in an array. Here is a sample working script:

#!/bin/bash
# declare an array called array and define 3 vales
array=( one two three )
for i in "${array[@]}"
do
	echo $i
done

#!/bin/bash
# declare an array called array and define 3 vales
array=( one two three )
for i in "${array[@]}"
do
echo $i
done

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.