$0
shell脚本自身名称
$1~$n
shell传参值,$1第一个参数,$2第二个参数,以此类推
$#
shell传参个数(从$1参数开始计算)
$*
shell传参的整个列表("$*" 使用双引号包含时,仍将所有参数看做一个整体)
$@
shell传参的整个列表("$@" 使用双引号包含时,将每个参数都看做一个独立数据)
$$
shell本身的pid(ProcessID)
$?
shell最后一次命令执行的返回值(0为正常退出,非0为异常退出)
示例:
$ cat show_var.sh echo "脚本名称:$0" echo "第2个参数:$2" echo "参数总数量:$#" echo "参数列表:$*" echo "参数列表:$@" echo "shell自身PID:$$" $ sh show_var.sh apple banana cherry 脚本名称:show_var.sh 第2个参数:banana 参数总数量:3 参数列表:apple banana cherry 参数列表:apple banana cherry shell自身PID:640800 #可以看到$*和$@都是整个参数列表,只有加双引号的时候才有区别,如下 $ cat test_var.sh echo "遍历"$*"" for i in "$*" do echo $i done echo "遍历"$@"" for i in "$@" do echo $i done $ sh test_var.sh apple banana cherry 遍历"$*" apple banana cherry 遍历"$@" apple banana cherry #加上双引号后"$*"仍然表示所有参数为一个整体,"$@"则将每个参数都当成独立数据



