${#string} 返回$string的长度

${string:position} 在$string中,从位置$position之后开始提取子串

$(string:position:length) 在$string中,从位置$position之后开始提取长度为$length的子串

${string#substring} 从变量$string开头开始删除最短匹配$substring子串

$(string##substring) 从变量$string开头开始删除最长匹配$substring子串

${string%substring} 从变量$string结尾开始删除最短匹配$substring子串

${string%%substring} 从变量$string结尾开始删除最长匹配$substring子串

${string/substring/replace} 使用$replace,来代替第一个匹配的$substring

${string/#substring/replace} 如果$string前缀匹配$substring,就用$replace来代替匹配$substring


依次举例说明:

定义xcn变量,内容为“i am xcn”

[root@XCN~]#xcn="iamxcn"[root@XCN~]#echo${xcn}iamxcn

1)返回字符串xcn变量字符串的长度

[root@XCN~]#echo${#xcn}8

思路 : echo $xcn|wc -m

[root@XCN~]#echo$xcn|wc-L8


2)截取xcn变量字符串从第2个字符之后开始截取,默认取后面字符的全部,第2个字符不包含在内。也可理解为删除前面的多少个字符。

[root@XCN~]#echo${xcn:2}amxcn

3)截取xcn变量字符串从第2个字符之后开始取,取两个字符

[root@XCN~]#echo${xcn:2:2}am提示:类似cut-c参数[root@XCN~]#echo${xcn}|cut-c1-4iam[root@XCN~]#echo${xcn}|cut-c3-4am

4)从变量$xcn开头开始删除最短匹配"i am"子串

[root@XCN~]#echo${xcn#iam}xcn

5)从变量$xcn开头开始删除最长匹配"i am old"子串

[root@XCN~]#echo${xcn##iamx}cn

6)从变量$xcn结尾开始删除最短匹配xcn子串

[root@XCN~]#echo${xcn%xcn}iam[root@XCN~]#echo${xcn#iam}xcn

7)从变量$xcn结尾开始删除最长匹配boy子串

[root@XCN~]#echo${xcn%%xcn}iam

8)使用baishuchao字符串,来替换变量xcn第一个匹配的xcn字符串

[root@XCN~]#echo${xcn/xcn/baishuchao}iambaishuchao

10)使用he is 字符串,来代替从变量$xcn开头开始匹配的i am字符串

[root@XCN~]#echo${xcn/#iam/heis}heisxcn提示:统一规律#从开头开始,%从结尾开始