A report generation script helps you collect and organize information automatically. It saves time and avoids mistakes compared to doing it by hand.
Report generation script in 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.
#!/bin/bash echo "Report for $(date)" echo "Disk usage:" df -h
#!/bin/bash users > users.txt echo "User list saved to users.txt"
#!/bin/bash uptime > report.txt free -h >> report.txt echo "System report created in report.txt"
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.
#!/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"
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.
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
Solution
Step 1: Understand the script's goal
A report generation script is designed to gather data and save it for review.Step 2: Match purpose with options
Only To automatically collect and save information into a file describes collecting and saving information automatically.Final Answer:
To automatically collect and save information into a file -> Option AQuick Check:
Report generation = collect and save info [OK]
- Confusing report generation with compiling code
- Thinking it deletes files
- Assuming it opens GUIs
Solution
Step 1: Identify the correct shebang for bash
The first line in a bash script must be#!/bin/bashto specify the interpreter.Step 2: Check other options
Options B, C, and D are either for other languages or commands, not the script start line.Final Answer:
#!/bin/bash -> Option CQuick Check:
Shebang for bash = #!/bin/bash [OK]
- Using wrong interpreter path
- Starting with commands instead of shebang
- Confusing bash with python
#!/bin/bash filename="report.txt" echo "Report generated on: $(date)" > $filename echo "User count: $(who | wc -l)" >> $filename cat $filename
Solution
Step 1: Analyze echo commands and redirection
The first echo writes the date line to report.txt (overwrite). The second echo appends user count.Step 2: Understand the final cat command
cat prints the contents of report.txt, showing both lines.Final Answer:
Prints current date and number of logged-in users in report.txt -> Option BQuick Check:
echo > overwrite, echo >> append, cat prints file [OK]
- Confusing > and >> operators
- Thinking variable usage is wrong
- Assuming file is empty
#!/bin/bash filename=report.txt echo "Start report" > $filename echo "Date: $(date)" > $filename cat $filename
Solution
Step 1: Check file redirection operators
The first echo writes "Start report" to the file. The second echo uses > again, overwriting the file.Step 2: Understand the effect on output
Because of overwrite, the first line is lost. Only the date line remains in the file.Final Answer:
The second echo overwrites the file, losing the first line -> Option AQuick Check:
Using > twice overwrites file [OK]
- Assuming > appends instead of overwriting
- Thinking variable is undefined
- Blaming cat command
files_report.txt. Which script snippet correctly does this?Solution
Step 1: Understand the requirements
The report must list files with sizes and save to files_report.txt.Step 2: Analyze options for correct commands and output
#!/bin/bash ls -lh > files_report.txt wc -l >> files_report.txt usesls -lhfor human-readable sizes and writes to the file. Then it appends the line count withwc -l, adding useful info.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.Final Answer:
Option D correctly lists files with sizes and appends line count to the report -> Option DQuick Check:
ls -lh for sizes + wc -l appended = correct report [OK]
- Overwriting file after appending
- Not using human-readable size option
- Missing extra useful info like line count
Ready to prove it?
Pass the test and this pattern moves unknown
