Loops
Concepts
for Loop
Iterating Over a List
for item in value1 value2 value3; do
echo "$item"
done
# Loop over words
for color in red green blue; do
echo "Color: $color"
done
# Loop over files
for file in /etc/*.conf; do
echo "Config file: $file"
done
# Loop over command output
for user in $(cut -d: -f1 /etc/passwd | head -5); do
echo "User: $user"
done
# Loop over array elements
fruits=("apple" "banana" "cherry")
for fruit in "${fruits[@]}"; do
echo "Fruit: $fruit"
done
# Loop over arguments
for arg in "$@"; do
echo "Argument: $arg"
done
C-Style for Loop
for ((i = 0; i < 10; i++)); do
echo "i = $i"
done
# Count by 2
for ((i = 0; i <= 20; i += 2)); do
echo "$i"
done
Brace Expansion
# Range of numbers
for i in {1..5}; do
echo "Number: $i"
done
# Range with step
for i in {0..100..10}; do
echo "$i"
done
# Letters
for letter in {a..z}; do
echo "$letter"
done
Note: Brace expansion
{1..5}is a Bash feature. It does not work insh/dash.