Excerpted from: ABS_GUIDE
: Http://www.tldp.org/LDP/abs/abs-guide.pdf
In linux, shell variables $ #, $ @, $0, $1, $2 are interpreted as follows: Variable description: $ Shell PID (ProcessID) $! PID of the background Process last run by Shell $? End code of the last command (return value) $- Flag overview Set by 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 Shell file name $1 ~ $ N Parameters added to Shell. $1 is the 1st parameter, and $2 is the 2nd parameter .... |
Example:
1 #!/bin/bash 2 # 3 printf "The complete list is %s\n" "$$" 4 printf "The complete list is %s\n" "$!" 5 printf "The complete list is %s\n" "$?" 6 printf "The complete list is %s\n" "$*" 7 printf "The complete list is %s\n" "$@" 8 printf "The complete list is %s\n" "$#" 9 printf "The complete list is %s\n" "$0" 10 printf "The complete list is %s\n" "$1" 11 printf "The complete list is %s\n" "$2
Result:
[Aric@localhost ~]$ bash params.sh 123456 QQThe complete list is 24249The complete list is The 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