(一)字符串的替换
(1)${变量1/查找字符/替换字符}(说明一下,这个操作中除了第一个参数是变量外其它两个都是字符;还有一点就是这个操作并不是
把“变量1”中的字符替换了,详见例子)例:str1=abcABCabc123ABCecho
${str1/bcA/aaa}#这里的abc和aaa都是字符串,而str1是变量,并且这个操作过后str1里的字符串长度不会减少,只是产生了一个
新的字串。
(2)${变量1/#查找字符/替换字符}(说明一下,这个操作上和面的是一样的,只不过是从左边开始匹配,并且必须从左边第一个字符开始)
例:echo ${str1/#bcA/aaa}#这个例子中并不会把bcA换成aaa因为b不是左边第一个开头字符echo
${str1/#abc/aaa}#这样才行
(3)${变量1/%查找字符/替换字符}(与(2)相反,是结尾最后一个字符要匹配才行)例:echo
${str1/%3ABC/aaa}#abcABCabc12aaa(3)${变量1//查找字符/替换字符}全部替换
(二)取子串
(1)${变量1:位
置}(说明一下,默认是从左边开始,如果“位置”为负数,则是从右边的第“位置”个字符开始,并且第一个位置为0;从“位置”开始取子串到最后)
例:str1=abcABCabc123ABCecho
${str1:(-3)}#会输出ABC
(2)${变量1:开始位置:结束位置}
(3)如果“变量1”为“*”或“@”,“位置”所表示的是第几个参
数。
(三)字符串移动
(1)${字串#匹配字串}(说明一下,这个是从左边第一个开始匹配,剥去最短“匹配字串”)
例:str1=abcABCabc123echo
${str1#a*c}#输出ABCabc123(2)${字串##匹配字串}(说明一下,这个是从左边第一个开始匹配,剥去最长“匹配字串
”)str1=abcABCabc123echo ${str1#a*c}#输出123echo
${str1#b*c}#输出abcABCabc123,因为没有从第一个开始匹配(3)${字串%匹配字串}(4)${字串%%匹配字串}(说明一下,
这与上面的(1)
(2)是正好相反的,是从最后一个开始匹配的)
(四)字符串长度
${#字串}例:str=abcdefgecho
${#str}#输出7
阅读(1896) | 评论(0) | 转发(0) |