变量内容的删除、取代与替换
删除
之前鸟哥这写得绝逼有问题,当初看这本书还是兵荒马乱发奋读书的九月。所以我直接略过这了。
- # 从前向后 非 贪婪匹配
- ## 从前向后 贪婪匹配
- % 从后向前 非 贪婪匹配
- %% 从后向前 贪婪匹配
匹配到的都删除了。。。。。。。。。。。。。
path=${PATH}
echo $path
>>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo ${path#/*local/bin:} #表示非贪婪匹配,/ 是这个匹配的开头,* 就是匹配全部了,把匹配的全部删掉>>> /usr/sbin:/usr/bin:/root/bin
echo ${path#*/local/bin:} # 实测不用非得匹配第一个字符>>> /usr/sbin:/usr/bin:/root/bin
echo ${path}
>>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# echo ${path#*:} # #*: 就是非贪婪匹配到第一个: 给它删掉
>>> /usr/local/bin:/usr/sbin:/usr/bin:/root/binecho ${path##*:}
>>> /root/bin # ##.: 就是贪婪匹配,尽量多匹配到:
echo $path
>>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # %从后向前匹配,%%贪婪匹配
echo ${path%:*}
>>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
echo ${path%%:*}
>>> /usr/local/sbin
替换
替换就相对简单了, /word1/word2 替换第一个 //word1/word2 替换所有
echo ${path}
>>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo ${path/bin/sb}
>>> /usr/local/ssb:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # 将第一个sbin的bin替换成sb
echo ${path//bin/sb}
>>> /usr/local/ssb:/usr/local/sb:/usr/ssb:/usr/sb:/root/sb # 替换所有的sbin的bin为sb