shell大括号参数扩展(Parameter Expansion)

参考了shell十三问
以及http://hi.baidu.com/leejun_2005/blog/item/ebfee11a4177ddc1ac6e751d.html

提炼下记忆方式:


${变量名#(##)*分隔符}剔除首个(或最末个即最右端)分隔符左侧字串
${变量名%(%%)分隔符*}剔除首个(或最末个即最左端)分隔符右侧字串

${变量名/被替换字串/替换字串} 替换首个匹配
${变量名//被替换字串/替换字串} 替换所有匹配

关于#和%的另一种助记方法:

首先看键盘上的#$%键,#      $      %   
使用#就表明匹配方向是从左向右  
使用%就表明匹配方向是从右向左  
单个#或单个%表示非贪婪匹配,匹配最短的部分  
两个#或两个%表示贪婪匹配,匹配最长的部分  
最后,剔除匹配部分。(*和分隔符直接看作匹配模式即可)

Published: April 25 2012

prize
微信扫一扫,支持一下!