Loops help you do the same job many times without writing the same code again and again. This saves time and makes your script shorter and easier to read.
When you want to print numbers from 1 to 10.
When you need to check many files one by one.
When you want to repeat a command for each item in a list.
When you want to automate repetitive tasks like backups.
When you want to process multiple user inputs automatically.
Syntax
Bash Scripting
for variable inlist
do
commands
done
The for loop goes through each item in the list one by one.
Inside the loop, you write commands that use the current item stored in variable.
Examples
This loop prints 'Number 1', 'Number 2', and 'Number 3'.
Bash Scripting
for i in123
do
echo "Number $i"
done
This loop lists all files ending with .txt in the current folder.
Bash Scripting
for file in *.txt
do
echo "File: $file"
done
Sample Program
This script counts from 1 to 5, printing each number with the word 'Counting:'.
Bash Scripting
#!/bin/bashfor i in12345
do
echo "Counting: $i"
done
OutputSuccess
Important Notes
Make sure to use done to end the loop.
You can loop over words, numbers, or file names.
Loops help avoid mistakes by not repeating code manually.
Summary
Loops repeat tasks to save time and effort.
They make scripts shorter and easier to understand.
Use loops when you have many similar jobs to do.
Practice
(1/5)
1. Why do loops help in scripting tasks? for i in 1 2 3; do echo $i; done
easy
A. They only work with numbers
B. They make scripts run slower
C. They repeat tasks automatically to save time and effort
D. They stop the script after one task
Solution
Step 1: Understand the loop purpose
The loop repeats the echo command for each number in the list automatically.
Step 2: Recognize efficiency
Repeating tasks with loops saves time and effort compared to writing commands multiple times.
Final Answer:
They repeat tasks automatically to save time and effort -> Option C
Quick Check:
Loops repeat tasks = They repeat tasks automatically to save time and effort [OK]
Hint: Loops automate repeated tasks to save effort [OK]
Common Mistakes:
Thinking loops slow down scripts
Believing loops stop after one run
Assuming loops only work with numbers
2. Which of these is the correct syntax for a basic for loop in bash?
easy
A. for (i=1; i<=3; i++) { echo $i }
B. for i in 1 2 3; do echo $i; done
C. loop i from 1 to 3 echo $i
D. foreach i in 1 2 3 echo $i
Solution
Step 1: Identify bash loop syntax
Bash uses 'for variable in list; do commands; done' format.
Step 2: Compare options
Only for i in 1 2 3; do echo $i; done matches bash syntax; others use other languages or incorrect forms.
Final Answer:
for i in 1 2 3; do echo $i; done -> Option B
Quick Check:
Bash for loop syntax = for i in 1 2 3; do echo $i; done [OK]
Hint: Bash loops use 'for var in list; do ...; done' [OK]
Common Mistakes:
Using C-style loops in bash
Using 'foreach' which is not bash syntax
Missing 'do' and 'done' keywords
3. What will be the output of this script?
for i in 1 2 3; do echo "Number $i"; done
medium
A. Number 1
Number 2
Number 3
B. Number 1 Number 2 Number 3
C. Number 123
D. Syntax Error
Solution
Step 1: Understand the loop iterations
The loop runs three times, each time echoing 'Number' plus the current number.
Step 2: Recognize echo output format
Each echo prints on a new line, so output has three lines with 'Number 1', 'Number 2', 'Number 3'.
Final Answer:
Number 1\nNumber 2\nNumber 3 -> Option A
Quick Check:
Loop prints each item on new line = Number 1
Number 2
Number 3 [OK]
Hint: Echo prints each loop item on a new line [OK]
Common Mistakes:
Thinking echo outputs on same line without newline
Confusing concatenated output with separate lines
Expecting syntax error from correct code
4. Find the error in this loop:
for i in 1 2 3
echo $i
done
medium
A. Missing 'do' keyword after for statement
B. Wrong variable name used
C. Extra 'done' keyword
D. Loop should use while instead of for
Solution
Step 1: Check loop syntax
Bash for loops require 'do' after the for line before commands.
Step 2: Identify missing keyword
The code misses 'do' after 'for i in 1 2 3', causing syntax error.
Final Answer:
Missing 'do' keyword after for statement -> Option A
Quick Check:
For loop needs 'do' keyword = Missing 'do' keyword after for statement [OK]
Hint: Always add 'do' after for statement in bash loops [OK]
Common Mistakes:
Forgetting 'do' keyword
Thinking 'done' is extra
Confusing variable names
5. You want to print all filenames in a folder using a loop. Which script efficiently does this?
1) for file in *; do echo $file; done
2) for file in folder/*; echo $file; done
3) while read file; do echo $file; done < folder
4) for file in folder; do echo $file; done
hard
A. Option 3
B. Option 2
C. Option 4
D. Option 1
Solution
Step 1: Understand globbing for files
The pattern '*' matches all files in the current directory, so 'for file in *' loops over all filenames.
Step 2: Check each option
Option 1 correctly loops over all files and echoes them. Option 2 misses 'do'. Option 3 reads lines from folder as a file, not filenames. Option 4 loops over the string 'folder' only.
Final Answer:
Option 1 -> Option D
Quick Check:
Use 'for file in *; do ...; done' to loop files [OK]
Hint: Use 'for file in *; do ...; done' to loop files [OK]
Common Mistakes:
Forgetting 'do' keyword in loops
Using folder name as string instead of glob
Confusing reading file contents with filenames
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.