Bash shell中的位置参数$#
,$*
,$@
,$0
,$1
,$2
…及特殊参数$?
,$$
等的含义:
$0
: 当前脚本的文件名。$n
: 传递给脚本或函数的参数。$1
表示第一个参数。此数目可以任意多,但只有前9个可以被访问,使用shift命令可以改变这个限制。$#
: 传递给脚本或函数的参数个数。$*
: 传递给脚本或函数的所有参数。$@
: 与$*
一样都表示传递给函数或脚本的所有参数,不被双引号(“”)包含时,都以"$1" "$2" … "$n"
的形式输出所有参数。但是当它们被双引号(“”)包含时,"$*"
会将所有的参数作为一个整体,以"$1 $2 … $n"
的形式输出所有参数;"$@"
会将各个参数分开,以"$1" "$2" … "$n"
的形式输出所有参数。$?
: 上一个命令、脚本的退出状态,或则,函数的返回值。用于检查上一个命令,函数或者脚本执行是否正确。(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错。)$$
: 当前进程ID。