Some special symbols.
$# the number of arguments passed to the script
$* displays all parameters passed to the script in a single string. Unlike positional variables, this option argument can exceed 9
$$ the current process ID number of the script run
$! Process ID number of the last process running in the background
$@ is the same as $* (but quotes are different when used)
$-Displays the current options used by the shell, the same as the SET command
$? Displays the exit status of the last command. 0 indicates no errors, and any other value indicates an error.
$ script Name
$1..$9 Nth Parameter
echo $ ((1+2)) displays 3, $ (arithmetic operation)
--------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------
Both $* and $@ represent all parameters passed to a function or script and are not included in double quotes ("") to "$" ... Output all parameters in the form of "$n".
But when they are included in double quotes (""):
"$*" will all parameters as a whole, in the form of "$ ... $n" output all parameters;
"$@" will separate the parameters to "$" "$" ... Output all parameters in the form of "$n".