12.1.2. Shell 参数
特殊的 shell 参数经常在 shell 脚本里面被用到。
表 12.3. shell 参数列表
shell 参数 | 值 |
---|---|
$0 | shell 或 shell 脚本的名称 |
$1 | 第一个 shell 参数 |
$9 | 第 9 个 shell 参数 |
$# | 位置参数数量 |
“$*” | “$1 $2 $3 $4 … “ |
“$@” | “$1” “$2” “$3” “$4” … |
$? | 最近一次命令的退出状态码 |
$$ | 这个 shell 脚本的 PID |
$! | 最近开始的后台任务 PID |
如下所示是需要记忆的基本的参数展开。
表 12.4. shell 参数展开列表
参数表达式形式 | 如果 var 变量已设置那么值为 | 如果 var 变量没有被设置那么值为 |
---|---|---|
${var:-string} | “$var “ | “string “ |
${var:+string} | “string “ | “null “ |
${var:=string} | “$var “ | “string “ (并运行 “var=string “) |
${var:?string} | “$var “ | 在 stderr 中显示 “string “ (出错退出) |
以上这些操作中 “:
“ 实际上都是可选的。
有 “
:
“ 等于测试的 var 值是存在且非空没有 “
:
“ 等于测试的 var 值只是存在的,可以为空
表 12.5. 重要的 shell 参数替换列表
参数替换形式 | 结果 |
---|---|
${var%suffix} | 删除位于 var 结尾的 suffix 最小匹配模式 |
${var%%suffix} | 删除位于 var 结尾的 suffix 最大匹配模式 |
${var#prefix} | 删除位于 var 开头的 prefix 最小匹配模式 |
${var##prefix} | 删除位于 var 开头的 prefix 最大匹配模式 |