Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Report generation script in Bash Scripting

Choose your learning style10 modes available
Introduction

A report generation script helps you collect and organize information automatically. It saves time and avoids mistakes compared to doing it by hand.

You want to summarize system status daily and save it to a file.
You need to gather user activity logs and create a readable report.
You want to check disk usage and email a report to your team.
You want to automate monthly sales data collection and formatting.
You want to quickly create a report from multiple files without manual copying.
Syntax
Bash Scripting
#!/bin/bash

# Commands to collect data
# Commands to format data
# Commands to save or display report

Start your script with #!/bin/bash to tell the system it is a bash script.

Use commands like echo, cat, and system tools to gather and format data.

Examples
This script prints a simple report with the current date and disk usage.
Bash Scripting
#!/bin/bash

echo "Report for $(date)"
echo "Disk usage:"
df -h
This script saves the list of logged-in users to a file and confirms it.
Bash Scripting
#!/bin/bash

users > users.txt
echo "User list saved to users.txt"
This script collects system uptime and memory info, saves it to a file, and notifies the user.
Bash Scripting
#!/bin/bash

uptime > report.txt
free -h >> report.txt
echo "System report created in report.txt"
Sample Program

This script creates a file named system_report.txt. It adds the current date, disk usage, memory usage, and logged-in users to the file. Finally, it tells you where the report is saved.

Bash Scripting
#!/bin/bash

# Simple report generation script

REPORT_FILE="system_report.txt"

echo "System Report - $(date)" > "$REPORT_FILE"
echo "-------------------------" >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
echo "Disk Usage:" >> "$REPORT_FILE"
df -h >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
echo "Memory Usage:" >> "$REPORT_FILE"
free -h >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
echo "Logged In Users:" >> "$REPORT_FILE"
who >> "$REPORT_FILE"

echo "Report saved to $REPORT_FILE"
OutputSuccess
Important Notes

Make sure your script file has execute permission: chmod +x script.sh.

Use > filename to create or overwrite a file, and >> to add to it.

Test your script step-by-step to check each part works before combining.

Summary

A report generation script automates collecting and saving information.

Use simple bash commands to gather data and write it to a file.

Always start with #!/bin/bash and give your script execute permission.

Practice

(1/5)
1. What is the main purpose of a report generation script in bash?
easy
A. To automatically collect and save information into a file
B. To compile source code into an executable
C. To delete all files in a directory
D. To open a graphical user interface

Solution

  1. Step 1: Understand the script's goal

    A report generation script is designed to gather data and save it for review.
  2. Step 2: Match purpose with options

    Only To automatically collect and save information into a file describes collecting and saving information automatically.
  3. Final Answer:

    To automatically collect and save information into a file -> Option A
  4. Quick Check:

    Report generation = collect and save info [OK]
Hint: Think: What does 'report generation' mean? Collect and save! [OK]
Common Mistakes:
  • Confusing report generation with compiling code
  • Thinking it deletes files
  • Assuming it opens GUIs
2. Which line correctly starts a bash script for report generation?
easy
A. echo "Start script"
B. #!/bin/python
C. #!/bin/bash
D. import bash

Solution

  1. Step 1: Identify the correct shebang for bash

    The first line in a bash script must be #!/bin/bash to specify the interpreter.
  2. Step 2: Check other options

    Options B, C, and D are either for other languages or commands, not the script start line.
  3. Final Answer:

    #!/bin/bash -> Option C
  4. Quick Check:

    Shebang for bash = #!/bin/bash [OK]
Hint: Always start bash scripts with #!/bin/bash [OK]
Common Mistakes:
  • Using wrong interpreter path
  • Starting with commands instead of shebang
  • Confusing bash with python
3. What will be the output of this script?
#!/bin/bash

filename="report.txt"
echo "Report generated on: $(date)" > $filename
echo "User count: $(who | wc -l)" >> $filename
cat $filename
medium
A. Shows an error because of wrong variable usage
B. Prints current date and number of logged-in users in report.txt
C. Prints only the date, not user count
D. Creates an empty file named report.txt

Solution

  1. Step 1: Analyze echo commands and redirection

    The first echo writes the date line to report.txt (overwrite). The second echo appends user count.
  2. Step 2: Understand the final cat command

    cat prints the contents of report.txt, showing both lines.
  3. Final Answer:

    Prints current date and number of logged-in users in report.txt -> Option B
  4. Quick Check:

    echo > overwrite, echo >> append, cat prints file [OK]
Hint: Remember > overwrites, >> appends in bash [OK]
Common Mistakes:
  • Confusing > and >> operators
  • Thinking variable usage is wrong
  • Assuming file is empty
4. Identify the error in this report generation script snippet:
#!/bin/bash
filename=report.txt
echo "Start report" > $filename
echo "Date: $(date)" > $filename
cat $filename
medium
A. The second echo overwrites the file, losing the first line
B. The variable filename is not defined correctly
C. Missing execute permission on the script
D. The cat command is incorrect

Solution

  1. Step 1: Check file redirection operators

    The first echo writes "Start report" to the file. The second echo uses > again, overwriting the file.
  2. Step 2: Understand the effect on output

    Because of overwrite, the first line is lost. Only the date line remains in the file.
  3. Final Answer:

    The second echo overwrites the file, losing the first line -> Option A
  4. Quick Check:

    Using > twice overwrites file [OK]
Hint: Use >> to append, not > to avoid overwriting [OK]
Common Mistakes:
  • Assuming > appends instead of overwriting
  • Thinking variable is undefined
  • Blaming cat command
5. You want to create a report script that lists all files in the current directory and their sizes, saving to files_report.txt. Which script snippet correctly does this?
hard
A. #!/bin/bash ls -l > files_report.txt
B. #!/bin/bash ls -l >> files_report.txt ls -a > files_report.txt
C. #!/bin/bash ls -lh > files_report.txt
D. #!/bin/bash ls -lh > files_report.txt wc -l >> files_report.txt

Solution

  1. Step 1: Understand the requirements

    The report must list files with sizes and save to files_report.txt.
  2. Step 2: Analyze options for correct commands and output

    #!/bin/bash ls -lh > files_report.txt wc -l >> files_report.txt uses ls -lh for human-readable sizes and writes to the file. Then it appends the line count with wc -l, adding useful info.
  3. Step 3: Check other options

    #!/bin/bash ls -l > files_report.txt lacks human-readable sizes. #!/bin/bash ls -l >> files_report.txt ls -a > files_report.txt overwrites file after appending, losing data. #!/bin/bash ls -lh > files_report.txt misses line count info.
  4. Final Answer:

    Option D correctly lists files with sizes and appends line count to the report -> Option D
  5. Quick Check:

    ls -lh for sizes + wc -l appended = correct report [OK]
Hint: Use ls -lh for sizes and append extra info with >> [OK]
Common Mistakes:
  • Overwriting file after appending
  • Not using human-readable size option
  • Missing extra useful info like line count
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