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 )
More examples:
files=( "/etc/passwd" "/etc/group" "/etc/hosts" ) limits=( 10, 20, 26, 39, 48)
To print an array use:
printf "%s\n" "${array[@]}" printf "%s\n" "${files[@]}" printf "%s\n" "${limits[@]}"
To Iterate Through Array Values
Use for loop syntax as follows:
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
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -


{ 3 comments… read them below or add one }
Defining the array with double parentheses gave me an error. Using single parentheses did not and worked just fine. This tip mixes them, showing double parentheses at the top, but then using single parentheses in the for loop.
HI
Want to know , how to create a Two dimension array in bash and print all in one go.
eg like in one dimension array,
echo ${array[@]}
What for two dimension array ??
Thanks in advance…
The double quotes are not necessary around ${array[@]}. This expression gets evaluated properly anyway.