首先 :形式,这个和php类似
即substr(str,b,c)
分别对应参数 ${str:b,c}
如果b
为负数,则在shell中要改为0-b
其次关于#
和%
的${str(#或%)*ss}
首先#
和%
的区别
#
为从字符串左边往右边开始找(通常应该配*char
),找到之后删掉左边的,如果为##
则贪婪匹配,即保证去掉的字符串最长
%
为从字符串右边往左边开始找(通常应该配char*
),找到之后删掉右边的,如果为%%
则贪婪匹配
特殊情况;
没找到返回整个字符串,如果匹配了整个字符串,则返回空,所以##*char*
或者%%*char*
如果有匹配肯定返回空字符串,所以无意义