天天看点

Shell变量:$0,$#,$*,[email protected],$?,$$,$!

变量作用表

变量 作用
$0 当前脚本的文件名。
$n 第n个参数。n 是一个数字。如:第一个参数是$1,第二个参数是$2。
$# 参数的个数。
$* 传递给脚本或函数的所有参数。
[email protected] 传递给脚本或函数的所有参数。被双引号 " " 括住时,与 $* 稍有不同。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。(脚本所在的进程ID)
$! 执行上一个后台指令的PID(后台运行的最后一个进程的进程ID)
$* 和 [email protected] 的区别

$*

[email protected]

都表示传递给函数或脚本的所有参数,不被双引号 " " 括住时,都以

"$1" "$2" … "$n"

的形式输出所有参数。但是当它们被双引号 " " 括住时,

"$*"

会将所有的参数作为一个整体输出,即以

"$1 $2 … $n"

的形式输出所有参数。

"[email protected]"

会将各个参数分开输出,以

"$1" "$2" … "$n"

的形式。

退出状态

$?

可以获取上一个命令的退出状态,所谓退出状态就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1。不过,也有一些命令返回其他值,表示不同类型的错误。