Some of the most useful bash special variables.
$0 is the name of the shell or shell script.$1, $2, $3, ... are the positional parameters.$@ is an array-like construct of all positional parameters, {$1, $2, $3 ...}.$* is the IFS expansion of all positional parameters, $1 $2 $3 ....$# is the number of positional parameters.$= current options set for the shell.$$ pid of the current shell (not subshell).$_ most recent parameter (or the abs path of the command to start the current shell immediately after startup).$IFS is the (input) field separator.$? is the most recent foreground pipeline exit status.$! is the PID of the most recent background command.