C. mkdir: cannot create directory '/root/testdir': Permission denied
Script finished
D. No output
Solution
Step 1: Analyze mkdir command
Creating a directory in /root usually requires root permission, so mkdir will fail with permission denied.
Step 2: Check error handling
Because mkdir fails, the || operator triggers the echo "Failed to create directory" message.
Final Answer:
Failed to create directory
Script finished -> Option A
Quick Check:
mkdir fails triggers echo = B [OK]
Hint: If command fails, || runs the error message [OK]
Common Mistakes:
Assuming mkdir succeeds without permission
Expecting no error message printed
Confusing command error output with echo message
4. Identify the error in this script snippet that tries to handle errors:
cp file1.txt /backup/
if [ $? -eq 0 ]
then
echo "Copy succeeded"
else
echo "Copy failed"
fi
medium
A. Missing semicolon after if condition
B. Incorrect use of $? for error checking
C. Missing quotes around file names
D. No error, script works correctly
Solution
Step 1: Check if statement syntax
The if condition [ $? -eq 0 ] is followed by a newline before 'then', which is valid bash syntax. No semicolon is required in this multi-line format.
Step 2: Verify other elements
$? correctly captures the exit status of cp. Quotes around file names/paths are optional here.
Final Answer:
No error, script works correctly -> Option D
Quick Check:
Multi-line if syntax valid without semicolon = C [OK]
Hint: Put ; or newline before then in if statements [OK]
Common Mistakes:
Thinking the if statement has a syntax error
Believing $? cannot be used for error checking
Assuming quotes are mandatory for file names here
5. You want to run a script that copies files and stops immediately if any copy fails, showing an error message. Which approach best prevents silent failures?
hard
A. Use set -e at the start and cp source dest || echo "Copy failed" for each copy
B. Ignore errors and continue copying all files
C. Use only cp source dest without checks
D. Redirect all errors to /dev/null to hide them
Solution
Step 1: Understand set -e behavior
set -e makes the script exit immediately if any command fails, preventing silent failures.
Step 2: Combine with error messages
Using cp source dest || echo "Copy failed" shows a clear error message when a copy fails before exiting.
Final Answer:
Use set -e at the start and cp source dest || echo "Copy failed" for each copy -> Option A
Quick Check:
set -e + error messages stop silent failures = A [OK]
Hint: Use set -e plus || echo for safe scripts [OK]
Common Mistakes:
Ignoring errors and continuing blindly
Not using set -e to stop on failure
Hiding errors by redirecting to /dev/null
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.