📖 Scenario: You work as a system helper. You want to save time by automating simple Linux tasks. Bash scripting helps you do this by writing small scripts that run commands automatically.
🎯 Goal: Build a simple Bash script that lists files, counts them, and shows the count. This shows how Bash scripting automates repeated Linux tasks.
📋 What You'll Learn
Create a variable with a list of files in the current directory
Create a variable to count the number of files
Use a Bash command to count files
Print the total number of files with a message
💡 Why This Matters
🌍 Real World
System administrators often automate tasks like file counting to save time and avoid mistakes.
💼 Career
Knowing Bash scripting helps you automate repetitive Linux tasks, making you more efficient and valuable in IT roles.
Progress0 / 4 steps
1
Create a variable with the list of files
Create a variable called files that stores the output of the command ls to list files in the current directory.
Bash Scripting
Hint
Use $(command) to save command output in a variable.
2
Create a variable to count the number of files
Create a variable called count that stores the number of files by counting lines in files using echo "$files" | wc -l.
Bash Scripting
Hint
Use wc -l to count lines from the list of files.
3
Write the core logic to automate counting files
Use the command echo "$files" | wc -l inside the variable count to count files automatically.
Bash Scripting
Hint
This step confirms you used the counting command correctly.
4
Print the total number of files
Write a echo command to print: Total files: X where X is the value of count.
Bash Scripting
Hint
Use echo "Total files: $count" to show the result.
Practice
(1/5)
1. Why do people use Bash scripting to automate Linux tasks?
easy
A. To make the computer run slower
B. To save time and reduce mistakes by repeating commands automatically
C. To avoid using the terminal completely
D. To create graphical user interfaces easily
Solution
Step 1: Understand the purpose of automation
Automation helps by running tasks repeatedly without manual input, saving time and avoiding errors.
Step 2: Relate Bash scripting to automation
Bash scripts contain commands that run in order, automating tasks on Linux systems.
Final Answer:
To save time and reduce mistakes by repeating commands automatically -> Option B
Quick Check:
Automation = save time and reduce errors [OK]
Hint: Automation means repeating tasks to save time [OK]
Common Mistakes:
Thinking Bash slows down the computer
Believing Bash replaces the terminal
Confusing Bash scripting with GUI design
2. Which line correctly starts a Bash script to tell the system to use Bash?
easy
A. #!/bin/bash
B. #!/bin/sh
C. #!/usr/bin/python
D. #!/bin/csh
Solution
Step 1: Identify the correct shebang for Bash
The shebang line #!/bin/bash tells the system to run the script with Bash shell.
Step 2: Compare other options
#!/bin/sh is for sh shell, #!/usr/bin/python is for Python, and #!/bin/csh is for C shell, not Bash.
Final Answer:
#!/bin/bash -> Option A
Quick Check:
Shebang for Bash = #!/bin/bash [OK]
Hint: Bash scripts start with #!/bin/bash [OK]
Common Mistakes:
Using #!/bin/sh which may not be Bash
Confusing Python or C shell shebangs
Omitting the shebang line
3. What will be the output of this Bash script?
#!/bin/bash
for i in 1 2 3; do
echo "Task $i done"
done
medium
A. Task 1 done
Task 2 done
Task 3 done
B. Error: syntax error
C. Task 1 done Task 2 done
Task 3 done
D. Task 1 done Task 2 done Task 3 done
Solution
Step 1: Understand the for loop in Bash
The loop runs three times with i=1, then 2, then 3.
Step 2: Check the echo command output
Each echo prints "Task $i done" followed by a newline, so output lines appear separately.
Final Answer:
Task 1 done
Task 2 done
Task 3 done -> Option A
Quick Check:
Loop prints each task on new line [OK]
Hint: echo adds a new line after each output [OK]
Common Mistakes:
Thinking echo outputs on same line
Confusing spaces with newlines
Expecting syntax errors in correct loops
4. Find the error in this Bash script that should print numbers 1 to 3:
#!/bin/bash
for i in {1..3}
do
echo "Number: $i"
fi
medium
A. Incorrect shebang line
B. Wrong variable name used
C. Echo command syntax error
D. Missing 'done' to close the for loop
Solution
Step 1: Check loop syntax
The for loop must end with done, but script ends with fi which is for if statements.
Step 2: Identify the correct closing keyword
Replace fi with done to properly close the loop.
Final Answer:
Missing 'done' to close the for loop -> Option D
Quick Check:
Loops end with done, not fi [OK]
Hint: For loops end with done, not fi [OK]
Common Mistakes:
Using fi instead of done to close loops
Confusing if and for syntax
Ignoring missing loop closure errors
5. You want to automate cleaning temporary files every day using a Bash script. Which approach best uses Bash scripting to automate this task?
hard
A. Manually run rm commands daily in the terminal
B. Use a graphical file manager to delete files once a week
C. Write a Bash script that deletes temp files and schedule it with cron
D. Write a Python program to delete files but run it manually
Solution
Step 1: Identify automation with Bash scripting
Writing a Bash script to delete temp files automates the task by running commands automatically.
Step 2: Use cron to schedule the script
Cron is a Linux tool to run scripts at set times, enabling daily automatic cleanup without manual work.
Final Answer:
Write a Bash script that deletes temp files and schedule it with cron -> Option C
Quick Check:
Bash script + cron = automated daily task [OK]
Hint: Combine Bash script with cron for automatic scheduling [OK]
Common Mistakes:
Running commands manually defeats automation
Using GUI tools is not scripting
Writing scripts but not scheduling them
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.