$# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
其中,,$@和$*都表示命令行所有参数(不包含$0),但是$*将命令行的所有参数看成一个整体,而$@则区分各个参数
见下例:
#!/bin/bash echo "number:$#" echo "name:$0" echo "first:$1" echo "second:$2" echo "list:$@" echo "param list:$*" echo "pid:$$" echo "exit status:$?" for i in "$@" do echo $i done for i in "$*" do echo $i done
输出如下:
number:6 name:./param.sh first:1 second:2 list:1 2 3 4 5 6 param list:1 2 3 4 5 6 pid:31600 exit status:0 1 2 3 4 5 6 1 2 3 4 5 6