Bird
Raised Fist0
Bash Scriptingscripting~5 mins

for loop (list-based) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the basic syntax of a list-based for loop in Bash?
A list-based for loop in Bash looks like this:
for item in list; do
commands
done

It runs the commands for each item in the list.
Click to reveal answer
beginner
How does a list-based for loop in Bash work?
It takes each item from the list one by one and runs the commands inside the loop for that item.
Think of it like checking each item in a shopping list and doing something with it.
Click to reveal answer
beginner
Write a Bash for loop that prints each fruit in the list: apple, banana, cherry.
for fruit in apple banana cherry; do
echo "$fruit"
done

This will print each fruit on its own line.
Click to reveal answer
intermediate
Can the list in a Bash for loop be a variable? How?
Yes! You can store the list in a variable and use it like this:
fruits="apple banana cherry"
for fruit in $fruits; do
echo "$fruit"
done
Click to reveal answer
beginner
What happens if the list in a Bash for loop is empty?
The loop body does not run at all because there are no items to process.
It's like having an empty shopping list; you don't do anything.
Click to reveal answer
What does this Bash code do?
for i in 1 2 3; do echo $i; done
APrints 1, then 2, then 3 each on a new line
BPrints 123 on one line
CPrints the string 'i' three times
DGives an error because of missing quotes
Which of these is a valid list for a Bash for loop?
A(apple banana cherry)
B"apple,banana,cherry"
C['apple', 'banana', 'cherry']
Dapple banana cherry
How do you access the current item inside a Bash for loop?
AUsing $current
BUsing the loop variable name, e.g., $item
CUsing $loop
DUsing $this
What will this code print?
list="dog cat"
for pet in $list; do echo $pet; done
Adog cat
Blist
Cdog<br>cat
DNothing
What happens if you run a Bash for loop with an empty list?
AThe loop does not run
BThe loop runs once with an empty item
CThe script crashes
DIt prints an error message
Explain how a list-based for loop works in Bash and give a simple example.
Think about how you would repeat an action for each item in a list.
You got /4 concepts.
    Describe how to use a variable as a list in a Bash for loop and why it might be useful.
    Variables can store lists to make loops easier to manage.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the following Bash code do?
      for item in apple banana cherry; do echo $item; done
      easy
      A. Prints each fruit name on a new line
      B. Prints all fruit names on the same line
      C. Creates a list of fruits without printing
      D. Causes a syntax error

      Solution

      1. Step 1: Understand the for loop structure

        The loop goes through each word in the list: apple, banana, cherry.
      2. Step 2: Check the command inside the loop

        It prints each item using echo, so each fruit name appears on its own line.
      3. Final Answer:

        Prints each fruit name on a new line -> Option A
      4. Quick Check:

        Loop prints each item line by line = C [OK]
      Hint: For loops print each list item one by one [OK]
      Common Mistakes:
      • Thinking echo prints all items on one line
      • Confusing list iteration with variable assignment
      • Missing the do/done keywords
      2. Which of these is the correct syntax for a Bash for loop over a list of words?
      easy
      A. loop item in apple banana cherry: echo $item
      B. for (item in apple banana cherry) { echo $item }
      C. for item in apple banana cherry; do echo $item; done
      D. foreach item in apple banana cherry; echo $item; end

      Solution

      1. Step 1: Identify valid Bash for loop syntax

        Bash uses: for variable in list; do commands; done
      2. Step 2: Compare options

        Only for item in apple banana cherry; do echo $item; done matches Bash syntax exactly; others use syntax from other languages or invalid forms.
      3. Final Answer:

        for item in apple banana cherry; do echo $item; done -> Option C
      4. Quick Check:

        Bash for loop syntax = D [OK]
      Hint: Bash loops use 'for var in list; do ...; done' [OK]
      Common Mistakes:
      • Using parentheses or braces like other languages
      • Using foreach or loop keywords not in Bash
      • Omitting do or done keywords
      3. What is the output of this script?
      for word in one two three; do echo "$word"; done
      medium
      A. one two three (each on its own line)
      B. one\ntwo\nthree
      C. one two three
      D. one two three

      Solution

      1. Step 1: Understand the loop iteration

        The loop runs three times, each time echoing one word: one, two, three.
      2. Step 2: Understand echo output with quotes

        Quotes preserve spaces but echo prints each word on a new line by default.
      3. Final Answer:

        one two three (each on its own line) -> Option A
      4. Quick Check:

        Echo prints each item on separate lines = A [OK]
      Hint: Echo prints each loop item on its own line by default [OK]
      Common Mistakes:
      • Thinking echo prints all items on one line
      • Confusing literal \n with newline
      • Ignoring quotes effect on output
      4. Find the error in this Bash script:
      for item apple banana cherry; do echo $item; done
      medium
      A. Missing semicolon after 'banana'
      B. Variable name 'item' is invalid
      C. Incorrect use of quotes around list items
      D. Missing 'in' keyword after 'for item'

      Solution

      1. Step 1: Check for loop syntax

        Bash requires 'for variable in list; do ...; done'. The 'in' keyword is missing here.
      2. Step 2: Identify the error cause

        Without 'in', Bash cannot parse the list, causing a syntax error.
      3. Final Answer:

        Missing 'in' keyword after 'for item' -> Option D
      4. Quick Check:

        For loop needs 'in' keyword = B [OK]
      Hint: Always include 'in' after variable in for loops [OK]
      Common Mistakes:
      • Forgetting the 'in' keyword
      • Adding unnecessary semicolons inside list
      • Misnaming variables with invalid characters
      5. You want to print only the fruits that start with the letter 'b' from this list:
      fruits="apple banana cherry blueberry"
      for fruit in $fruits; do
        # Fill condition here
        echo "$fruit"
      done

      Which condition inside the loop correctly filters fruits starting with 'b'?
      hard
      A. if [ $fruit = 'b' ]; then
      B. if [[ $fruit == b* ]]; then
      C. if [[ $fruit =~ b* ]]; then
      D. if [ $fruit == 'b*' ]; then

      Solution

      1. Step 1: Understand string pattern matching in Bash

        Double brackets [[ ]] support pattern matching with == and wildcards like '*'.
      2. Step 2: Check each condition

        A uses [[ $fruit == b* ]] which matches strings starting with 'b'. B uses single brackets for exact 'b' match. C uses [[ $fruit =~ b* ]]; b* regex matches zero or more 'b's (including none), so every string. D uses single brackets which don't support patterns or ==.
      3. Final Answer:

        if [[ $fruit == b* ]]; then -> Option B
      4. Quick Check:

        Use [[ var == pattern* ]] for prefix match = A [OK]
      Hint: Use [[ var == prefix* ]] to match string start in Bash [OK]
      Common Mistakes:
      • Using single brackets with wildcard patterns
      • Confusing regex =~ with == operator
      • Comparing to exact string 'b' instead of prefix
      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