$0 ------>脚本名
$1 ------>传入的第一个参数值
$? ------>脚本执行的结果。成功==0,不成功==非0
$* ------>所有参数的内容
$@ ------>所有参数的内容
$# ------>参数的数量
$$ ------>表示当前进程的进程号 希望打开一个进程后不再打开另一个
$! ------>表示后台运行的最后一个进程号
测试代码如下:
1 linux-56:/install # cat 2.sh 2 #!/bin/sh 3 echo '$0 == ' $0 4 echo '$1 == ' $1 5 echo '$2 == ' $2 6 echo '$? == ' $? 7 echo '$* == ' $* 8 echo '$@ == ' $@ 9 echo '$# == ' $# 10 echo '$$ == ' $$ 11 echo '$! == ' $! 12 13 ps -ef | grep "2.sh"
测试结果打印如下:
1 linux-56:/install # ./2.sh 1 2 3 2 $0 == ./2.sh 3 $1 == 1 4 $2 == 2 5 $? == 0 6 $* == 1 2 3 7 $@ == 1 2 3 8 $# == 3 9 $$ == 16169 10 $! == 11 root 16169 307 0 18:29 pts/0 00:00:00 /bin/sh ./2.sh 1 2 3 12 root 16171 16169 0 18:29 pts/0 00:00:00 grep 2.sh
参考了下别的资料,显示的是说 $* 和 $@ 的区别在于:
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
即$@可以当作数组来用
注:没实际使用过。待验证。
突然看到一个很详细的blog:
http://c.biancheng.net/cpp/view/2739.html