Bird
Raised Fist0
Linux CLIscripting~15 mins

Shell concept (Bash, Zsh) in Linux CLI - Mini Project: Build & Apply

Choose your learning style10 modes available
Basic Shell Scripting with Variables and Loops
📖 Scenario: You are learning how to automate simple tasks in the Linux shell using Bash or Zsh. Imagine you want to keep track of your favorite fruits and print a message for each one.
🎯 Goal: Create a shell script that stores a list of fruits, sets a greeting message, loops through the fruits, and prints a personalized message for each fruit.
📋 What You'll Learn
Create a variable called fruits containing the exact list: apple, banana, cherry
Create a variable called greeting with the exact text: "I love"
Use a for loop with variable fruit to iterate over fruits
Print the message combining greeting and fruit exactly as shown
💡 Why This Matters
🌍 Real World
Shell scripts like this help automate repetitive tasks such as processing lists of files, users, or data entries.
💼 Career
Basic shell scripting is essential for system administrators, developers, and anyone working with Linux servers or automation.
Progress0 / 4 steps
1
Create the list of fruits
Create a variable called fruits and assign it the exact string: "apple banana cherry"
Linux CLI
Hint

Use quotes to assign multiple words to a variable in shell.

2
Add a greeting message
Create a variable called greeting and assign it the exact text: "I love"
Linux CLI
Hint

Remember to use quotes for strings with spaces.

3
Loop through the fruits
Use a for loop with variable fruit to iterate over fruits and inside the loop print the message combining greeting and fruit separated by a space.
Linux CLI
Hint

Use for fruit in $fruits; do ... done and echo to print.

4
Run the script and see the output
Run the script and print the output. The output should show each fruit with the greeting on its own line.
Linux CLI
Hint

Run the script in your shell or use bash script.sh if saved in a file.

Practice

(1/5)
1. What is a shell in Linux or macOS?
easy
A. A programming language for creating websites
B. A program that lets you type commands to control your computer
C. A graphical interface for editing photos
D. A type of hardware component inside the computer

Solution

  1. Step 1: Understand the role of a shell

    A shell is a program that takes your typed commands and runs them on the computer.
  2. Step 2: Compare options

    Options A, B, and C describe web programming, hardware, and graphics, which are not shells.
  3. Final Answer:

    A program that lets you type commands to control your computer -> Option B
  4. Quick Check:

    Shell = command program [OK]
Hint: Shell = command line program to control computer [OK]
Common Mistakes:
  • Thinking shell is hardware
  • Confusing shell with graphical apps
  • Mixing shell with programming languages
2. Which of these is the correct way to run a command with an option in Bash?
easy
A. ls -ll
B. ls -l -
C. ls l-
D. ls -l

Solution

  1. Step 1: Identify correct option syntax

    Options start with a dash (-) followed by letters, so '-l' is correct.
  2. Step 2: Check each option

    A: 'ls -l' is correct. B has extra dash, C has wrong order, D uses '-ll' which repeats the option unnecessarily.
  3. Final Answer:

    ls -l -> Option D
  4. Quick Check:

    Options start with dash and letter [OK]
Hint: Options start with dash (-) followed by letters [OK]
Common Mistakes:
  • Adding extra dash after options
  • Writing options without dash
  • Combining options incorrectly
3. What will the following Bash command output?
echo "Hello"; echo "World"
medium
A. Hello World (two lines)
B. Hello\nWorld
C. Hello World
D. Hello World

Solution

  1. Step 1: Understand the echo command

    Each echo prints its argument followed by a new line by default.
  2. Step 2: Analyze the command sequence

    First echo prints 'Hello' then newline, second echo prints 'World' then newline, so output is two lines.
  3. Final Answer:

    Hello World (two lines) -> Option A
  4. Quick Check:

    echo prints with newline [OK]
Hint: echo prints text then newline by default [OK]
Common Mistakes:
  • Thinking echo joins output on one line
  • Confusing literal \n with newline
  • Ignoring semicolon separates commands
4. What is wrong with this Bash script snippet?
for i in 1 2 3
do
echo $i
done
medium
A. Missing semicolon after '3'
B. Incorrect loop syntax, should use parentheses
C. No error, script runs fine
D. Missing 'do' keyword

Solution

  1. Step 1: Check for loop syntax

    The for loop syntax 'for i in 1 2 3; do ... done' is correct. The semicolon after '3' is optional if 'do' is on next line.
  2. Step 2: Verify keywords and structure

    'do' is present, parentheses are not needed in Bash for this loop, so no syntax error.
  3. Final Answer:

    No error, script runs fine -> Option C
  4. Quick Check:

    Bash for loop syntax correct without semicolon if newline before do [OK]
Hint: Newline before 'do' replaces semicolon in for loops [OK]
Common Mistakes:
  • Thinking semicolon is always required
  • Confusing Bash syntax with other languages
  • Missing 'do' keyword
5. You want to list all files in a directory including hidden ones, sorted by modification time. Which command should you use?
hard
A. ls -a -t
B. ls -l -h
C. ls -r -S
D. ls -d .*

Solution

  1. Step 1: Understand options needed

    '-a' shows all files including hidden, '-t' sorts by modification time.
  2. Step 2: Evaluate each option

    A: 'ls -r -S' reverses and sorts by size (no hidden). B: 'ls -l -h' long format with human sizes (no hidden, no time sort). C: 'ls -a -t' shows all including hidden, sorted by mod time. D: 'ls -d .*' shows only dot entries.
  3. Final Answer:

    ls -a -t -> Option A
  4. Quick Check:

    Show hidden + sort by time = ls -a -t [OK]
Hint: Use -a for hidden, -t for time sort [OK]
Common Mistakes:
  • Using -l instead of -a to show hidden
  • Confusing -S (size) with -t (time)
  • Using -d .* lists only hidden files
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