📖 Scenario: You are writing a small bash script to check if a user is allowed to enter a club based on their age. The script will exit with different codes to show if the user is too young, just right, or too old.
🎯 Goal: Build a bash script that uses custom exit codes with exit N to indicate different age categories.
📋 What You'll Learn
Create a variable age with a specific value.
Create a variable min_age to set the minimum allowed age.
Use if statements to check the age and exit with custom codes.
Print a message showing the exit code after running the script.
💡 Why This Matters
🌍 Real World
Scripts often need to tell other programs or users what happened by using exit codes. Custom exit codes help identify specific situations like errors or special cases.
💼 Career
Understanding exit codes is important for automation, debugging, and writing scripts that work well with other tools in system administration and DevOps.
Progress0 / 4 steps
1
Set the user's age
Create a variable called age and set it to 20.
Bash Scripting
Hint
Use age=20 to assign the value.
2
Set the minimum allowed age
Create a variable called min_age and set it to 18.
Bash Scripting
Hint
Use min_age=18 to assign the value.
3
Use if statements to set custom exit codes
Write an if statement that checks if age is less than min_age. If yes, exit with code 1. Otherwise, if age is between min_age and 30 inclusive, exit with code 0. Else, exit with code 2.
Bash Scripting
Hint
Use if, elif, and else with exit N commands.
4
Print the exit code after running the script
Run the script and print the exit code using echo and $?.
Bash Scripting
Hint
After running the script, use echo $? in the terminal to see the exit code.
Practice
(1/5)
1. What does the command exit 0 mean in a bash script?
easy
A. The script will continue running after this command.
B. The script encountered an error and stopped.
C. The script finished successfully without errors.
D. The script restarts from the beginning.
Solution
Step 1: Understand exit codes in bash
In bash, exit 0 means the script ended without any errors.
Step 2: Interpret the meaning of 0
Exit code 0 always signals success to the system or calling program.
Final Answer:
The script finished successfully without errors. -> Option C
Quick Check:
exit 0 = success [OK]
Hint: Remember: 0 means success, anything else means error [OK]
Common Mistakes:
Thinking exit 0 means error
Assuming script continues after exit
Confusing exit 0 with restart
2. Which of the following is the correct syntax to exit a bash script with code 5?
easy
A. exit 5
B. exit code 5
C. exit(5)
D. exit -5
Solution
Step 1: Recall bash exit syntax
The correct way to exit with a code is exit N, where N is a number.
Step 2: Check each option
exit 5 uses exit 5, which is valid syntax. Others are invalid in bash.
Final Answer:
exit 5 -> Option A
Quick Check:
exit N syntax = exit 5 [OK]
Hint: Use just 'exit' followed by a number, no extra words [OK]
Common Mistakes:
Adding 'code' after exit
Using parentheses like a function
Using negative numbers for exit
3. What will be the exit code of this script?
#!/bin/bash
if [ -f "/tmp/file.txt" ]; then
exit 3
else
exit 0
fi
medium
A. 0 if /tmp/file.txt exists, 3 if not
B. 3 if /tmp/file.txt exists, 0 if not
C. Always 0
D. Always 3
Solution
Step 1: Understand the if condition
The script checks if the file /tmp/file.txt exists using -f.
Step 2: Analyze exit codes for each case
If the file exists, it exits with code 3; otherwise, it exits with 0.
Final Answer:
3 if /tmp/file.txt exists, 0 if not -> Option B
Quick Check:
File exists -> exit 3; else -> exit 0 [OK]
Hint: Match exit code to condition true/false carefully [OK]
Common Mistakes:
Mixing up the if and else branches
Assuming exit 0 always means file exists
Ignoring the file check condition
4. Identify the error in this script snippet:
#!/bin/bash
exit 256
medium
A. Exit code 256 is invalid; exit codes must be 0-255.
B. Missing quotes around 256.
C. exit command should be lowercase.
D. exit requires a string, not a number.
Solution
Step 1: Check valid exit code range
Bash exit codes must be between 0 and 255 inclusive.
Step 2: Analyze the given exit code
256 is outside this range, so it is invalid and will wrap around or cause unexpected behavior.
Final Answer:
Exit code 256 is invalid; exit codes must be 0-255. -> Option A
Quick Check:
Exit codes range 0-255 [OK]
Hint: Exit codes must be 0-255, no higher numbers [OK]
Common Mistakes:
Using numbers above 255
Thinking quotes are needed
Confusing case sensitivity of exit
5. You want a script to exit with code 10 if a user is not root, and 0 if root. Which snippet correctly implements this?
hard
A. if [ "$USER" != "root" ]; then exit 10; else exit 0; fi
B. if [ "$UID" -eq 0 ]; then exit 10; else exit 0; fi
C. if [ "$USER" == "root" ]; then exit 10; else exit 0; fi
D. if [ "$UID" -ne 0 ]; then exit 10; else exit 0; fi
Solution
Step 1: Identify how to check root user
Root user has UID 0, so checking $UID -ne 0 means user is not root.
Step 2: Match exit codes to condition
If user is not root, exit 10; else exit 0 for root user.
Final Answer:
if [ "$UID" -ne 0 ]; then exit 10; else exit 0; fi -> Option D
Quick Check:
UID 0 means root; non-zero means not root [OK]
Hint: Use UID 0 to check root, not USER string [OK]
Common Mistakes:
Comparing USER string instead of UID
Reversing the exit codes
Using == instead of -eq for numbers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.