$0 这个脚本的执行名字,或者当前使用的shell
搜索$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用

==============================以上来自百度知道,下面是验证=================

创建test.sh脚本内容如下

#!/bin/sh
echo "hello sir,today is `date +%F` "
#上面这句是今天的日期
echo '$0是' $0
echo '$1是'$1
echo '$2是'$2
echo '$*是'$*
echo '$#是'$#
date
echo '$?是'$?
echo '$$是'$$
echo '$-是'$-
echo '$@是'$@

========================================================================

执行

[root@linuxa ~]# sh test.sh  1 2
hello sir,today is 2015-10-22
$0是 test.sh
$1是1
$2是2
$*是1 2
$#是2
Thu Oct 22 20:40:46 CST 2015
$?是0
$$是26718
$-是hB
$@是1 2