$? is a variable that holds the return code of the last command.
also
$$ is a variable that holds the current process id
$! is a variable that holds the pid of a process launched asynchronously
$0 holds the current script name
$1 ..... hold each argument from the command line
$@ holds all the command line arguments