标签:单引号 未定义 输出 定义 最长匹配 code htm 前缀 双引号
几种特殊的替换结构总结:
当var为空或者未定义时:${var:-string}的值为string
当var不为空时:${var:+string}的值为string
当var为空或未定义时:${var:=string}重新将string赋值给var
当var为空或未定义时:${var:?string}则将string输出到stdrr
shell中单引号与双引号的区别:
单引号:告诉shell忽略特殊字符
双引号:解释特殊符号原有的意义
example:
[root@deploy scripts]# a="sss"
[root@deploy scripts]# echo $a
sss
[root@deploy scripts]# echo ‘$a‘
$a
[root@deploy scripts]# echo "$a"
sss
字符串替换
格式:
${parameter/pattern/string}
[root@deploy scripts]# var="hello shell"
[root@deploy scripts]# echo ${var/shell/world}
hello world
字符串截取
格式:
删除匹配前缀
${parameter#word}
${parameter##word}
删除匹配后缀
${parameter%word}
${parameter%%word}
# 去掉左边,最短匹配模式
## 去掉左边,最长匹配模式
% 去掉右边,最短匹配模式
%% 去掉右边,最长匹配模式
example:
[root@deploy scripts]# var="http://www.baidu.com/index.html"
[root@deploy scripts]# echo ${var#*/}
/www.baidu.com/index.html
[root@deploy scripts]# echo ${var##*/}
index.html
[root@deploy scripts]# echo ${var%/*}
http://www.baidu.com
[root@deploy scripts]# echo ${var%%/*}
http:
标签:单引号 未定义 输出 定义 最长匹配 code htm 前缀 双引号
原文地址:https://blog.51cto.com/13777088/2416370