字符串操作符——变量内容操作
一、获取变量的长度
${#varname}
示例:
[root@gudcloud tmp]# str="hello world"
[root@gudcloud tmp]# echo ${#str}
11
二、截取变量的部分数据
${varname:offset:length}
返回变量varname的子字符串,开始位置为offset,长度为length。offset从0开始计数。
示例:
[root@gudcloud tmp]# echo ${str:2:5}
llo w
三、变量内容替换操作
1、${varname/pattern/string}
用string字符串替换vername变量中pattern模式匹配到的内容。仅做一次替换操作。
[root@gudcloud tmp]# word='nice to meet you!'
[root@gudcloud tmp]# echo ${word/e/E}
nicE to meet you!
2、${varname//pattern/string}
用string字符串替换vername变量中pattern模式匹配到的内容。做全局替换操作。
[root@gudcloud tmp]# echo ${word//e/E}
nicE to mEEt you!
四、从开始位置匹配变量内容,返回删除匹配成功的内容
1、${varname#pattern}
使用pattern模式从varname的开头匹配,返回匹配成功的内容;做最小匹配。
[root@gudcloud tmp]# echo ${word#*e}
to meet you!
2、${varname##pattern}
使用pattern模式从varname的开头匹配,返回匹配成功的内容;做最大匹配。
[root@gudcloud tmp]# echo ${word##*e}
t you!
五、从结尾位置匹配变量内容,返回删除匹配成功的内容
1、${varname%pattern}
使用pattern模式从varname的结尾匹配,返回匹配成功的内容;做最小匹配。
[root@gudcloud tmp]# echo ${word%e*}
nice to me
2、${varname%%pattern}
使用pattern模式从varname的结尾匹配,返回匹配成功的内容;做最大匹配。
[root@gudcloud tmp]# echo ${word%%e*}
nic