鸟哥的linux私房菜-第十一章 变量内容删除

168 阅读1分钟

难点:

2.8 变量内容的删除、取代与替换

这里鸟哥的书上讲不是很清楚,这里记录下我的理解
[root@localhost hanmo]# echo $path
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/kerberos/bin:/sbin:/home/hanmo/.local/bin:/home/hanmo/bin:/usr/kerberos/bin:/root/bin
[root@localhost hanmo]# r=${path#*kerberos/bin}   //一个#号是表示从左边也就是从头部开始寻找,等寻找到第一个*kerberos/bin 的时候就把它自己和前面的全部删除
[root@localhost hanmo]# echo $r
:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/kerberos/bin:/sbin:/home/hanmo/.local/bin:/home/hanmo/bin:/usr/kerberos/bin:/root/bin
[root@localhost hanmo]# 
\[root@localhost hanmo]# \
> 
[root@localhost hanmo]# r=${path##*kerberos/bin}//两个##号是表示从左往右就是往头部开始寻找,找到最后一个*kerberos/bin,然后把它和它前面的都删除
[root@localhost hanmo]# echo $r
:/root/bin
[root@localhost hanmo]# 

这里截个视频里的图(我会把链接放在最后)

image.png 下面是插入%号的例子

[root@localhost hanmo]# echo $path
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/kerberos/bin:/sbin:/home/hanmo/.local/bin:/home/hanmo/bin:/usr/kerberos/bin:/root/bin
[root@localhost hanmo]# 
[root@localhost hanmo]# 
[root@localhost hanmo]# r=${path%bin*}
[root@localhost hanmo]# echo $r
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/kerberos/bin:/sbin:/home/hanmo/.local/bin:/home/hanmo/bin:/usr/kerberos/bin:/root/
[root@localhost hanmo]# 
[root@localhost hanmo]# r=${path%%bin*}
[root@localhost hanmo]# echo $r
/usr/kerberos/s
[root@localhost hanmo]# 

这里也放一个截图

image.png

总结

#号是表示从头部也就是从左边开始寻找,1个#号是寻找到第一个符合条件的,两个#号是寻找到最后一个 %号是表示从尾部也就是从右边开始寻找,1个%号是寻找到第一个符合条件的,两个%号是寻找到最后一个 最后再把寻找到的那个,包括往那个方向以前的删除。 最后最后把B站视频贴上www.bilibili.com/video/BV1Jb…