In Linux, the shell variable $ #, $ @, $0, $1, $2 has the following meanings :,
Variable description:
$ PID (ProcessID) of Shell itself $! PID of the background Process last run by Shell $? End code of the last command (Return Value) $-Flag list Set using the Set command $ * List of all parameters. For example, when "$ *" is included in... $ N "to output all parameters. $ @ List of all parameters. For example, when "$ @" is included in "... All parameters are output in the form of "$ n. $ # Number of parameters added to Shell $0 name of the Shell itself $1 ~ $ N parameter values added to Shell. $1 is the 1st parameter, and $2 is the 2nd parameter ....
Example:
#!/bin/bash#printf "The complete list is %s\n" "$$"printf "The complete list is %s\n" "$!"printf "The complete list is %s\n" "$?"printf "The complete list is %s\n" "$*"printf "The complete list is %s\n" "$@"printf "The complete list is %s\n" "$#"printf "The complete list is %s\n" "$0"printf "The complete list is %s\n" "$1"printf "The complete list is %s\n" "$2"
Result:
[Aric@localhost ~]$ bash params.sh 123456 QQThe complete list is 24249The complete list isThe complete list is 0The complete list is 123456 QQThe complete list is 123456The complete list is QQThe complete list is 2The complete list is params.shThe complete list is 123456The complete list is QQ
For more information, see the following document.
: Http://www.tldp.org/LDP/abs/abs-guide.pdf