Bird
Raised Fist0
Bash Scriptingscripting~5 mins

set -e for exit on error in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does set -e do in a bash script?

set -e makes the script stop running immediately if any command returns an error (non-zero exit code).

Click to reveal answer
beginner
Why is set -e useful in bash scripts?

It helps catch errors early by stopping the script, so you don't run commands that depend on failed steps.

Click to reveal answer
beginner
How do you enable set -e in a bash script?

Add set -e near the top of your script, usually after the #!/bin/bash line.

Click to reveal answer
beginner
What happens if a command fails after set -e is set?

The script immediately exits and does not run any more commands.

Click to reveal answer
intermediate
Can set -e be turned off in the middle of a script?

Yes, by running set +e you can disable the exit-on-error behavior.

Click to reveal answer
What does set -e do in a bash script?
AIgnores errors and continues running
BStops the script if any command fails
CPrints all commands before running them
DRuns the script in debug mode
Where should you place set -e in your bash script?
AAt the very end of the script
BAnywhere in the script, it doesn't matter
COnly inside functions
DNear the top, after the shebang line
How do you disable the exit-on-error behavior after enabling set -e?
Aexit 0
Bset -x
Cset +e
Dunset -e
If a command fails after set -e is set, what happens?
AThe script exits immediately
BThe script pauses and waits for user input
CThe script continues running
DThe command is retried automatically
Which of these is a good reason to use set -e?
ATo catch errors early and avoid unexpected results
BTo ignore errors and keep going
CTo print all commands before running
DTo make scripts run faster
Explain what set -e does in a bash script and why it is helpful.
Think about how scripts behave when a command fails.
You got /4 concepts.
    Describe how to enable and disable the exit-on-error behavior in a bash script.
    Remember the commands start with 'set' and use plus or minus.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the set -e command do in a bash script?
      easy
      A. It stops the script immediately if any command returns a non-zero exit status.
      B. It prints all commands before executing them.
      C. It ignores errors and continues running the script.
      D. It runs the script in debug mode.

      Solution

      1. Step 1: Understand the purpose of set -e

        The set -e option tells bash to exit the script if any command fails (returns a non-zero status).
      2. Step 2: Compare with other options

        Options like printing commands or ignoring errors do not match set -e's behavior.
      3. Final Answer:

        It stops the script immediately if any command returns a non-zero exit status. -> Option A
      4. Quick Check:

        set -e = exit on error [OK]
      Hint: Remember: set -e means exit on any error [OK]
      Common Mistakes:
      • Confusing set -e with set -x (debug mode)
      • Thinking it ignores errors instead of stopping
      • Assuming it prints commands before running
      2. Which of the following is the correct way to enable exit on error in a bash script?
      easy
      A. set -e
      B. set +e
      C. exit -e
      D. enable -e

      Solution

      1. Step 1: Recall the syntax for enabling exit on error

        The correct syntax to enable exit on error is set -e.
      2. Step 2: Eliminate incorrect options

        set +e disables exit on error, exit -e and enable -e are invalid commands.
      3. Final Answer:

        set -e -> Option A
      4. Quick Check:

        Enable exit on error = set -e [OK]
      Hint: Use set -e to turn on exit on error [OK]
      Common Mistakes:
      • Using set +e which disables exit on error
      • Confusing exit command with set
      • Typing invalid commands like enable -e
      3. Consider this script with set -e enabled:
      #!/bin/bash
      set -e
      echo "Start"
      false
      echo "End"
      What will be the output when this script runs?
      medium
      A. Start End
      B. No output
      C. End
      D. Start

      Solution

      1. Step 1: Analyze script commands with set -e

        The script prints "Start", then runs false which returns a non-zero exit status causing the script to exit immediately.
      2. Step 2: Determine which commands run

        Because of set -e, the script stops after false, so "End" is never printed.
      3. Final Answer:

        Start -> Option D
      4. Quick Check:

        set -e stops script on error, so only "Start" prints [OK]
      Hint: Script stops at first error, so later lines don't run [OK]
      Common Mistakes:
      • Expecting all echo statements to run
      • Ignoring that false returns error
      • Thinking set -e allows script to continue
      4. You have this script:
      #!/bin/bash
      set -e
      echo "Start"
      ls /nonexistent_directory
      echo "End"
      The script exits immediately after the ls command. How can you fix it to continue even if ls fails?
      medium
      A. Remove set -e from the script.
      B. Add || true after the ls command.
      C. Change ls to ls -e.
      D. Add set +e at the start of the script.

      Solution

      1. Step 1: Understand why script exits

        set -e causes the script to exit on any command failure, so ls /nonexistent_directory failing stops the script.
      2. Step 2: Use || true to ignore error

        Appending || true makes the command always succeed, preventing exit.
      3. Final Answer:

        Add || true after the ls command. -> Option B
      4. Quick Check:

        Use command || true to bypass set -e exit [OK]
      Hint: Add || true to ignore errors on specific commands [OK]
      Common Mistakes:
      • Removing set -e loses error protection
      • Using invalid ls -e option
      • Trying set +e disables exit globally, not selective
      5. You want a bash script to stop on any error except for a specific command that might fail but should not stop the script. How do you write this script snippet correctly?
      #!/bin/bash
      set -e
      # Your command here
      other_command
      Which snippet correctly allows your_command to fail without stopping the script?
      hard
      A. your_command ; true other_command
      B. set +e your_command other_command
      C. your_command || true other_command
      D. trap '' ERR your_command other_command

      Solution

      1. Step 1: Understand selective error ignoring

        To allow one command to fail without stopping the script under set -e, append || true to that command.
      2. Step 2: Compare other options

        your_command ; true other_command: your_command ; true fails because set -e exits after your_command before true. set +e your_command other_command disables set -e but doesn't re-enable it for other_command. trap '' ERR your_command other_command ignores ERR trap but doesn't restore it, affecting other_command.
      3. Final Answer:

        your_command || true other_command -> Option C
      4. Quick Check:

        Use command || true to ignore errors selectively [OK]
      Hint: Add || true after command to ignore its errors [OK]
      Common Mistakes:
      • Disabling set -e globally instead of locally
      • Using if without handling exit status properly
      • Using traps unnecessarily complicates script
      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