$? no script de shell
$? it give the exit status of last command
drpzet
$? it give the exit status of last command
$$ is the process ID (PID) of the script itself.
$BASHPID is the process ID of the current instance of Bash. This is not the same as the $$ variable, but it often gives the same result.