字符串操作符——变量内容操作

2019-04-12 0 By admin

一、获取变量的长度

${#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