$# is the number of arguments passed to the script. $ is the name of the script itself. $ is the first parameter passed to the shell script, and the second argument that is passed to the shell script is [email protected] is a list of all the parameters passed to the script $* is to display all parameters passed to the script in a single string, unlike positional variables, which can be more than 9 $$ is the current process ID number for the script to run? is to display the exit status of the last command, 0 means no error, others indicate an error
Difference: @@*
Same point: All parameters are referenced
Different points: only in double quotes. Suppose that three parameters were written when the script was run (stored at 112 3 respectively) then "*" is equivalent to "112 3" (passing a parameter), and "3" (passing a parameter), while "@" is equivalent to "1" "1" "2" "$ $" (three parameters passed)
This article is from the "Linux_cheng" blog, make sure to keep this source http://6764097.blog.51cto.com/6754097/1795692
Variables in Linux $#,[email protected] , $0,$1,$2,$*,$$,$? The meaning of