I came across a shell script where echo $? was used. What does this mean . How can we use this in a shell script. Are there any references for this.

2 Answers 2


echo $? means status of your previous command

see the example here

[root@localhost ~]# jk
-bash: jk: command not found
[root@localhost ~]# echo $?
[root@localhost ~]# pwd
[root@localhost ~]# echo $?
[root@localhost ~]# 

At first you are getting 1 because command is wrong And second time you are getting 0 because command was successful

There is no command called jk (in my case)


$? returns the result of the last run command in a bash (and probably other) shell.

From http://tldp.org/LDP/abs/html/exit-status.html example 6-1:


echo hello
echo $?    # Exit status 0 returned because command executed successfully.

lskdf      # Unrecognized command.
echo $?    # Non-zero exit status returned -- command failed to execute.


exit 113   # Will return 113 to shell.
           # To verify this, type "echo $?" after script terminates.

#  By convention, an 'exit 0' indicates success,
#+ while a non-zero exit value means an error or anomalous condition.
#  See the "Exit Codes With Special Meanings" appendix.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .