A number of special parameters, all starting with $, get expanded by Bash.
$1, $2, $3, … are positional special characters,
$@ is an array-like construct referring of all positional parameters,
$# expands to the number of arguments,
$$ pid of the current shell,
$! expands to the PID of the most recent background command,
$0 expands to the name of the current shell or script.
Example:
function arguments{echo First argument: $1echo Second argument: $2echo Third argument: $3echo Number of arguments: $#echo All arguments: $@}arguments one two three four five
First argument: one
Second argument: two
Third argument: three
Number of arguments: 5
All arguments: one two three four five
Additionally, !! is replaced by the previous command.