[root@server ~]# cat test.sh
#!/bin/bash
printf "\$$ Shell本身的PID(ProcessID) is %s\n" "$$"
printf "\$! Shell最后运行的后台Process的PID is %s\n" "$!"
printf "\$? 最后运行的命令的结束代码(返回值) is %s\n" "$?"
printf "\$*||\$@ 所有参数列表 is %s\n" "$*"
printf "\$# 添加到Shell的参数个数 is %s\n" "$#"
printf "\$0 Shell本身的文件名 is %s\n" "$0"
printf "\$1~\$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…  is %s\n" "$1"
printf "\$1~\$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…  is %s\n" "$2" 
[root@server ~]# ./test.sh 2 3 4 5
$$ Shell本身的PID(ProcessID) is 3879
$! Shell最后运行的后台Process的PID is
$? 最后运行的命令的结束代码(返回值) is 0
$*||$@ 所有参数列表 is 2 3 4 5
$# 添加到Shell的参数个数 is 4
$0 Shell本身的文件名 is ./test.sh
$1~$n 添加到Shell的各参数值。2是第1参数、3是第2参数…  is 2
$1~$n 添加到Shell的各参数值。2是第1参数、3是第2参数…  is 3
$#测试
[root@server ~]# cat 1.sh
#!/bin/bash
if [ $# = 1 ]
then
echo "1"
else
echo "2"
fi
[root@server ~]# ./1.sh 1
1
[root@server ~]# ./1.sh 1 2
2
[root@server ~]# ./1.sh 1 2 3
2