shell中的特殊变量:

$0 shellshell脚本的名字
$* 以一对双引号给出参数列表,即这个程序的所有参数"$1 $2 $3 ..."
$@ 将各个参数分别加双引号返回,即这个程序的所有参数"$1" "$2" "$3" "..."
$# 参数的个数
$_ 代表上一个命令的最后一个参数
$- 代表引用当前脚本中命令的选项的引导符
$$ 代表所在命令的PID
$! 代表最后执行的后台命令的PID
$? 代表上一个命令执行后的退出状态

例如:
[root@193 nn]# cat tt.sh
#!/bin/sh
echo $0
echo $*
echo $@
echo $#
echo $$
ls -a /home/a
echo $_
echo $-
ping -c 3 localhost > /dev/null 2>&1  &
echo $?
echo $!
[root@193 nn]#
[root@193 nn]#
[root@193 nn]# sh tt.sh 1 2 3 4
tt.sh
1 2 3 4
1 2 3 4
4
8296
.  ..
/home/a
hB
0
8298
[root@193 nn]#