shell参数替换
转义字符
同c语言
命令替换
`` 将命令的执行结果保存在变量中,如: now=`date`
变量替换
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值
${}带冒号
| 形式 | 说明 | 
|---|---|
| ${var} | 变量本来的值 | 
| ${var:-word} | 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。 | 
| ${var:=word} | 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。 | 
| ${var:?message} | 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。此替换出现在Shell脚本中,那么脚本将停止运行。 | 
| ${var:+word} | 如果变量 var 被定义,那么返回 word,但不改变 var 的值。 | 
| ${var:offset} | 子串,var从offset之后的子串 | 
| ${var:offset:length} | 子串,var从offset之后长度为length的子串 | 
${}带叹号的
| 形式 | 说明 | 
|---|---|
| ${!prefix*} | 将带有前缀为prefix的参数打印出来 | 
| ${!prefix@} | |
| ${!name[@]} | 针对数组,打印出name数组有哪些下标 | 
| ${!name[*]} | 
${}正则
| 形式 | 说明 | 
|---|---|
| ${var#pattern} | 从头开始扫描,将匹配pattern正则表达式的字符过滤掉,最短匹配 | 
| ${var##pattern} | 同上,只不过是最长匹配 | 
| ${var%pattern} | 从尾开始,将匹配pattern正则表达式的字符过滤掉,最短匹配 | 
| ${var%%pattern} | 同上,只不过是最长匹配 | 
| ${var/pattern/string} | 替换,仅一次 | 
| ${var//pattern/string} | 替换,全部 | 
- 上一篇 我的chrome插件
 - 下一篇 js 键盘快捷键