Bash for: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 32: | Line 32: | ||
</pre> | </pre> | ||
=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= | |||
<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 ";" | ||
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 ";"