- 论坛徽章:
- 22
|
本帖最后由 amarant 于 2011-11-19 19:52 编辑
这本书写的不够通俗,看的很吃力。我觉得还是Advanced Bash-Scripting Guide这本书要好一点
其中一段:
% %%:
单词被扩展成一个模式,就像文件名扩展一样。如果这个模式与参数扩展后的值开始部分匹配,则替换的结果是该模式与参数扩展后的值最短的匹配部分 夨指奜%夢天 或者最长的匹配部分 夨指奜%%夢天 删除以后的字符串。如果参数是奜*夢或奜@夢,则模式删除操作就对位置参数依次进行,扩展的结果就是所得到的位置参数列表。如果参数是带有下标奜*夢或奜@夢的数组名,则模式删除操作就对数组元素依次进行,扩展的结果就是所得到的数组元素列表。
而在ABS里面:
${string%substring}
从$string 的结尾位置截掉最短匹配的$substring .
${string%%substring}
从$string 的结尾位置截掉最长匹配的$substring .
1 stringZ=abcABC123ABCabc
2 #
||
3 #
|------------|
4
5 echo ${stringZ%b*c}
# abcABC123ABCa
6 # 从$stringZ的结尾位置截掉'b'到'c'之间最短的匹配.
7
8 echo ${stringZ%%b*c}
# a
9 # 从$stringZ的结尾位置截掉'b'到'c'之间最长的匹配.当你需要构造文件名的时候, 这个操作就显得特别有用. |
|