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
(adsbygoogle = window.adsbygoogle || []).push({});