Bird
Raised Fist0
Bash Scriptingscripting~15 mins

Why loops repeat tasks efficiently in Bash Scripting - See It in Action

Choose your learning style10 modes available
Why loops repeat tasks efficiently
📖 Scenario: You are organizing a small event and need to send a thank you message to each guest. Instead of writing the message many times, you will use a loop to repeat the task efficiently.
🎯 Goal: Build a bash script that uses a loop to print a thank you message for each guest in a list.
📋 What You'll Learn
Create a list of guest names in a variable called guests
Create a variable called message with the thank you text
Use a for loop to repeat the message for each guest
Print the personalized thank you message for each guest
💡 Why This Matters
🌍 Real World
Loops help automate repetitive tasks like sending messages, processing files, or running commands multiple times without rewriting code.
💼 Career
Knowing how to use loops in bash scripting is essential for system administrators, DevOps engineers, and anyone automating tasks on Linux or Unix systems.
Progress0 / 4 steps
1
Create the guest list
Create a variable called guests that contains these exact names separated by spaces: Alice Bob Charlie
Bash Scripting
Hint

Use double quotes to store multiple names separated by spaces in one variable.

2
Add the thank you message
Create a variable called message and set it to the exact text Thank you for coming!
Bash Scripting
Hint

Use double quotes to store the message text in a variable.

3
Use a loop to repeat the message
Use a for loop with the variable guest to go through each name in $guests. Inside the loop, create a variable personal_message that combines $guest and $message separated by a comma and a space.
Bash Scripting
Hint

Use for guest in $guests; do ... done and inside assign personal_message="$guest, $message".

4
Print the personalized messages
Inside the for loop, add a echo command to print the personal_message variable for each guest.
Bash Scripting
Hint

Use echo "$personal_message" inside the loop to print each message.

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

  1. Step 1: Understand the loop purpose

    The loop repeats the echo command for each number in the list automatically.
  2. Step 2: Recognize efficiency

    Repeating tasks with loops saves time and effort compared to writing commands multiple times.
  3. Final Answer:

    They repeat tasks automatically to save time and effort -> Option C
  4. 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

  1. Step 1: Identify bash loop syntax

    Bash uses 'for variable in list; do commands; done' format.
  2. 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.
  3. Final Answer:

    for i in 1 2 3; do echo $i; done -> Option B
  4. 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

  1. Step 1: Understand the loop iterations

    The loop runs three times, each time echoing 'Number' plus the current number.
  2. 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'.
  3. Final Answer:

    Number 1\nNumber 2\nNumber 3 -> Option A
  4. 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

  1. Step 1: Check loop syntax

    Bash for loops require 'do' after the for line before commands.
  2. Step 2: Identify missing keyword

    The code misses 'do' after 'for i in 1 2 3', causing syntax error.
  3. Final Answer:

    Missing 'do' keyword after for statement -> Option A
  4. 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

  1. Step 1: Understand globbing for files

    The pattern '*' matches all files in the current directory, so 'for file in *' loops over all filenames.
  2. 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.
  3. Final Answer:

    Option 1 -> Option D
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard