前言
变量拓展
实践
| 参数拓展 | 实例 | 内涵 |
|---|---|---|
| 基本拓展 | ${TMP} | 普通变量 TMP="ABC" |
| 间接引用 | ${!TMP} | 间接引用 TMP=JJC JJC="ABC" |
| 变量名搜索 | ${!TMP*} | 查看以TMP开头的变量名 TMPA='A' TMPB='B' TMPC='C' |
| 默认值 | ${TMP:-test}<br />${TMP-test} ${TMP:=test}<br />${TMP=test} | TMP非空则TMP赋值,否则使用test赋值 -与=不同在在TMP为空时,=会将test赋值给TMP.而-不会 -与= 当TMP不存在时赋值 :-与:= 当TMP不存在或空时赋值 |
| 空值错误 | ${TMP:?tip}<br />${TMP?tip} | :当TMP不存在时,显示tip :?当TMP不存在或空时显示 |
| 非空替换 | ${TMP:+tip}<br />${TMP+tip} | :+ TMP非空则赋值tip,否则就是空 + TMP不存在时赋值tip,否则为空 |
| 截取 | ${TMP:N1:N2} | 从N1开始截取N2个字符,如果没有N2则到末尾 如果参数为@则是位置参数个数 |
| 字符串移除 | ${TMP#word}<br />${TMP##word} ${TMP%word}<br />${TMP%%word} | #从头开始删除word,最短匹配 ##从头开始删除word,最长匹配 %从尾开始删除word,最从短匹配 %%从尾开始删除word,最长匹配 删除匹配到的字符,返回剩下的,常用于获取路径 |
| 替换 | ${TMP/aa/bb}<br />${TMP//aa/bb} ${TMP/aa}<br />${TMP//aa} | /+/ 替换第一个aa为bb //+/ 替换所有aa为bb / 替换第一个aa为空 // 替换所有的aa为空 |
| 大小写 | ${TMP^}<br />${TMP^^} ${TMP,}<br />${TMP,,} | 第一个字符大写 全部大写 第一个字符小写 全部小写 |
:exclamation:在替换时,字符串下标是从0开始,而数组(@位置参数列表)下标是从1开始
echo "Database URL is: ${DATABASE_URL:?Error: DATABASE_URL must be set}"补:
| 特殊参数 | 内涵 |
|---|---|
| $0 | 脚本本身名(具体看执行时) |
| $@ | 所有参数(整体字符串) |
| $* | 所有参数(独立数组) |
| $# | 参数数量 |
本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。