Bash loops: Difference between revisions
From wikinotes
Line 67: | Line 67: | ||
done | done | ||
</source> | </source> | ||
<syntaxhighlight lang="bash"> | |||
while true; do | |||
echo "hi" | |||
done | |||
</syntaxhighlight> | |||
</blockquote><!-- while loop --> | </blockquote><!-- while loop --> | ||
Revision as of 01:34, 27 December 2021
for loop
for item in array
list=(a b c d) for ch in ${list[@]};do echo -n $ch done #> a b c dfor index in array
list=(a b c d) for i in "${!list[@]}"; do echo "$i == ${list[$i]}" donefor i in expr
for (( i=0; $i < 4; i++ )); do echo -n "$i" done #> 0 1 2 3for num in range
for i in $(seq 0 3); do echo -n "$i " done #> 0 1 2 3iterate array by two
gitcmd=( "bash" "/home/will/progs/bash" "config" "/home/will/progs/config" ) for (( i=0; $i < ${#gitcmd[@]}; i=(( $i+2 )) )); do echo ${gitcmd[$i]} done
while loop
while [ $x -le 5 ]; do echo $x x=$(( $x + 1 )) donewhile true; do echo "hi" done
while read loop
This is useful for iterating over items with spaces.
find . | while read f; do echo "--$f"; done
until loop
until [ "$var1" == "2" ] ; do echo 'repeat until $var1 == 2' done
read loop (iterate lines)
Iterate over lines (may contain spaces)
find . | while read -r var; do echo "$var" done