Bash for: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 32: Line 32:
</pre>
</pre>


!!!Iterating through $1, $2, $3 ...
=Iterating through $1, $2, $3 ...=


{{{
<pre>
     for i do
     for i do
         echo ${i}
         echo ${i}
     done
     done
}}}
</pre>


!!!Iterating through a space separated list
=Iterating through a space separated list=
 
 
{{{


<pre>
     s="a b c"
     s="a b c"
     for i in ${s}
     for i in ${s}
         do
         do
             echo ${i}
             echo ${i}
         done
         done
}}}
</pre>


or
or


{{{
<pre>
 
     s="a b c"
     s="a b c"
     for i in ${s}; do echo ${i}; done
     for i in ${s}; do echo ${i}; done
 
</pre>
}}}


Note the use of ";"
Note the use of ";"
__Referenced by:__\\
[{INSERT com.ecyrd.jspwiki.plugin.ReferringPagesPlugin WHERE max=20, maxwidth=50}]

Revision as of 23:56, 29 February 2016

External

Internal

Overview

The for built-in command expand words, and execute commands once for each member in the resultant list, with i bound to the current member.

   for i in words; do commands; done

Alternatively, for:

   for i do commands; done

commands executes for each positional parameter (as if in "$@" had been specified.

Yes another alternative form:

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

Iterating through $1, $2, $3 ...

     for i do
         echo ${i}
     done

Iterating through a space separated list

    s="a b c"
    for i in ${s}
        do
            echo ${i}
        done

or

     s="a b c"
     for i in ${s}; do echo ${i}; done

Note the use of ";"