Interview › Scripting (Bash, Groovy)
What is $? used for, and how do you check the exit status of a command? [Basic]
Answer
$? stores the exit status of the most recently executed foreground command. I check it immediately after a command, or more cleanly use if command; then ... else ... fi.
Technical explanation
An exit status of 0 means success by convention; nonzero means failure or another exceptional condition.
Reading $? after echo, test, or another command gives the status of that later command, not the original one.
Using if command is safer and avoids accidental overwriting of the status.
Hands-on example
if curl -fsS https://example.com/health >/dev/null; then
echo "healthy"
else
rc=$?
echo "health check failed with rc=$rc" >&2
exit "$rc"
fi
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Scripting (Bash, Groovy) interview questions
- What is the purpose of the shebang line, and what does #!/bin/bash do? [Basic]
- What is the difference between sh and bash? [Basic]
- How do you make a script executable and run it? [Basic]
- What is the difference between running a script with ./script.sh, bash script.sh, and source script.sh? [Basic]
- What does sourcing a script do differently from executing it? [Basic]
- How do you declare a variable in Bash, and why are spaces around = not allowed? [Basic]
- What is the difference between $var and ${var}? [Basic]
- What is the difference between single quotes and double quotes in Bash? [Basic]