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

Preparing for an interview?

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

← All Scripting (Bash, Groovy) questions