12.1.2. Shell 参数

特殊的 shell 参数经常在 shell 脚本里面被用到。

表 12.3. shell 参数列表

shell 参数
$0shell 或 shell 脚本的名称
$1第一个 shell 参数
$9第 9 个 shell 参数
$#位置参数数量
“$*”“$1 $2 $3 $4 … “
“$@”“$1” “$2” “$3” “$4” …
$?最近一次命令的退出状态码
$$这个 shell 脚本的 PID
$!最近开始的后台任务 PID

如下所示是需要记忆的基本的参数展开

表 12.4. shell 参数展开列表

参数表达式形式如果 var 变量已设置那么值为如果 var 变量没有被设置那么值为
${var:-string}$varstring
${var:+string}stringnull
${var:=string}$varstring“ (并运行 “var=string“)
${var:?string}$varstderr 中显示 “string“ (出错退出)

以上这些操作中 “:“ 实际上都是可选的。

  • :“ 等于测试的 var 值是存在非空

  • 没有:“ 等于测试的 var 值只是存在的,可以为空

表 12.5. 重要的 shell 参数替换列表

参数替换形式结果
${var%suffix}删除位于 var 结尾的 suffix 最小匹配模式
${var%%suffix}删除位于 var 结尾的 suffix 最大匹配模式
${var#prefix}删除位于 var 开头的 prefix 最小匹配模式
${var##prefix}删除位于 var 开头的 prefix 最大匹配模式