Bird
Raised Fist0
Bash Scriptingscripting~20 mins

Error logging patterns in Bash Scripting - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Error Logging Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Understanding error redirection in Bash
What will be the output and error behavior when running this script?
#!/bin/bash
ls /nonexistentfile > output.log 2> error.log
Bash Scripting
ls /nonexistentfile > output.log 2> error.log
AError message appears on screen; output.log and error.log are both empty
BError message appears on screen; output.log contains error message; error.log is empty
CNo output on screen; output.log is empty; error.log contains the error message
DNo output on screen; output.log contains error message; error.log is empty
Attempts:
2 left
💡 Hint
Remember that '2>' redirects standard error and '>' redirects standard output.
💻 Command Output
intermediate
2:00remaining
Effect of combined output and error redirection
What will be the content of combined.log after running this command?
grep 'pattern' file.txt &> combined.log

Assume file.txt does not exist.
Bash Scripting
grep 'pattern' file.txt &> combined.log
Acombined.log contains the error message about missing file
BError message appears on screen; combined.log is empty
Ccombined.log is empty
Dcombined.log contains the output of grep if file.txt existed
Attempts:
2 left
💡 Hint
The '&>' operator redirects both stdout and stderr to the same file.
❓ Troubleshoot
advanced
2:00remaining
Diagnosing silent failures in a script
A script runs a command that fails, but no error message appears on the terminal or in the log file. Which of these is the most likely cause?
AThe command's error output is redirected to /dev/null
BThe command's output is redirected to a file
CThe script uses 'set -e' to stop on errors
DThe command is run with sudo
Attempts:
2 left
💡 Hint
Think about where error messages go if redirected to a special device.
✅ Best Practice
advanced
2:00remaining
Best practice for logging errors in a Bash script
Which option shows the best way to log errors to a file while keeping normal output visible on the terminal?
Acommand > output.log 2>&1
Bcommand 2> error.log
Ccommand &> all.log
Dcommand > output.log 2> error.log
Attempts:
2 left
💡 Hint
You want errors in a file but normal output on screen.
🔀 Workflow
expert
3:00remaining
Order of commands to capture and handle errors in a deployment script
Arrange these steps in the correct order to ensure errors are logged and the script exits on failure:
1. Redirect errors to a log file
2. Run deployment command
3. Check command exit status
4. Exit script if error detected
A1,3,2,4
B2,3,1,4
C2,1,3,4
D1,2,3,4
Attempts:
2 left
💡 Hint
Think about setting up logging before running commands and then checking results.

Practice

(1/5)
1. What does the 2> operator do in a bash script?
easy
A. Redirects error messages to a file
B. Redirects standard output to a file
C. Appends output to a file
D. Runs a command in the background

Solution

  1. Step 1: Understand bash output streams

    Bash has two main output streams: standard output (1) and standard error (2).
  2. Step 2: Identify the meaning of 2>

    The operator 2> redirects the standard error stream to a file or location.
  3. Final Answer:

    Redirects error messages to a file -> Option A
  4. Quick Check:

    2> means error redirect [OK]
Hint: Remember 2 is error stream, so 2> redirects errors [OK]
Common Mistakes:
  • Confusing 2> with > which redirects standard output
  • Thinking 2> appends instead of overwriting
  • Assuming 2> runs commands in background
2. Which of the following is the correct syntax to redirect only error messages (overwriting the file) to a file named error.log?
easy
A. command > error.log
B. command 2>> error.log
C. command &> error.log
D. command 2> error.log

Solution

  1. Step 1: Understand redirection operators

    2> redirects standard error and overwrites the file; 2>> appends errors.
  2. Step 2: Match requirement to syntax

    We want to redirect only errors and overwrite the file, so 2> error.log is correct.
  3. Final Answer:

    command 2> error.log -> Option D
  4. Quick Check:

    Use 2> for error overwrite [OK]
Hint: Use 2> to overwrite error file, 2>> to append [OK]
Common Mistakes:
  • Using > which redirects standard output, not errors
  • Using &> which redirects both output and errors
  • Confusing append (>>) with overwrite (>)
3. What will be the output of the following command if script.sh prints "Success" to standard output and "Error occurred" to standard error?

./script.sh > output.log 2> error.log
medium
A. "Success" is saved in output.log, "Error occurred" in error.log
B. Both messages saved in output.log
C. Both messages appear on the terminal
D. "Error occurred" saved in output.log, "Success" in error.log

Solution

  1. Step 1: Analyze redirection operators

    > output.log redirects standard output to output.log, 2> error.log redirects standard error to error.log.
  2. Step 2: Match outputs to files

    "Success" goes to standard output, so saved in output.log; "Error occurred" goes to standard error, saved in error.log.
  3. Final Answer:

    "Success" is saved in output.log, "Error occurred" in error.log -> Option A
  4. Quick Check:

    Separate output and error files [OK]
Hint: Use > for output, 2> for errors to separate logs [OK]
Common Mistakes:
  • Assuming both outputs go to same file
  • Confusing 2> with >
  • Expecting output on terminal despite redirection
4. Identify the error in this command intended to redirect errors to errors.log:

command 2>2 errors.log
medium
A. Should use &> instead of 2>
B. Missing space between command and 2>
C. Extra '2' causes errors to be redirected to file named '2' instead of 'errors.log'
D. No error, command is correct

Solution

  1. Step 1: Examine the redirection syntax

    The correct syntax to redirect errors is 2> filename. Here, 2>2 errors.log redirects stderr to file 2, treating errors.log as a command argument.
  2. Step 2: Identify the cause of error

    The extra '2' makes the filename 2 instead of errors.log.
  3. Final Answer:

    Extra '2' causes errors to be redirected to file named '2' instead of 'errors.log' -> Option C
  4. Quick Check:

    2> must be followed by correct filename [OK]
Hint: Check redirection target filename after 2> [OK]
Common Mistakes:
  • Adding extra numbers or symbols in filename position
  • Confusing &> with 2>
  • Missing spaces causing parsing errors
5. You want to run a script and save both standard output and error messages into separate files, but also keep the error messages appended (not overwritten). Which command achieves this?
hard
A. ./script.sh > output.log 2> error.log
B. ./script.sh > output.log 2>> error.log
C. ./script.sh &> output.log
D. ./script.sh >> output.log 2> error.log

Solution

  1. Step 1: Understand output and error redirection

    > overwrites standard output, 2>> appends standard error to a file.
  2. Step 2: Match requirement to command

    We want output overwritten in output.log and errors appended in error.log, so ./script.sh > output.log 2>> error.log fits.
  3. Final Answer:

    ./script.sh > output.log 2>> error.log -> Option B
  4. Quick Check:

    Use 2>> to append errors [OK]
Hint: Use 2>> to append errors, > to overwrite output [OK]
Common Mistakes:
  • Using 2> which overwrites error file
  • Using &> which merges output and errors
  • Appending output but overwriting errors
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