经常忘记一些 shell 特殊变量的含义,所以写在这里备忘一下。

变量名 解释
$? 最后运行的命令的结束代码(返回值)
$* 所有参数列表。如 “$*” 用「”」括起来的情况、以 “$1 $2 … $n” 的形式输出所有参数
$@ 所有参数列表。如 “$@” 用「”」括起来的情况、以 “$1” “$2” … “$n” 的形式输出所有参数
$# 添加到 Shell 的参数个数
$0 Shell 本身的文件名
$1-$n 添加到 Shell 的各参数值。$1 是第 1 参数、$2 是第 2 参数…。
$- 使用 Set 命令设定的 Flag 一览
$_ 保存之前执行的命令的最后一个参数
$! Shell 最后运行的后台 Process 的 PID
$$ Shell 本身的 PID(ProcessID)