转载并整理:http://hi.baidu.com/ipvsadm/item/489d9e16460195ddbe9042ee,谢谢!
linux中shell变量$#,$@,$0,$1,$2的含义解释:
变量说明:
$$: Shell本身的PID(ProcessID)
$!: Shell最后运行的后台Process的PID
$?: 最后运行的命令的结束代码(返回值)
$-: 使用Set命令设定的Flag一览
$_: 保存之前执行的命令的最后一个参数
$*: 所有参数列表。所有的位置参数,被作为一个单词。注意:"$*"必须被""引用。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@: 所有参数列表。与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的单词。注意:"$@"必须被""引用.如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#: 添加到Shell的参数个数
$0: Shell本身的文件名
$1~$n: 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
退出状态(exit status)
函数返回一个被称为退出状态的值. 退出状态可以由return 来指定statement, 否则函数的退出状态是函数最后一个执行命令的退出状态(0 表示成功,非0 表示出错代码). 退出状态(exit status)可以在脚本中由$? 引用. 这个机制使脚本函数也可以像C 函数一样有一个"返回值".
return
终止一个函数.return 命令[1]可选地带一个整数参数,这个整数作为函数的"返回值"返回给调用此函数的脚本,并且这个值也被赋给变量$?.