难点:
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]#
这里截个视频里的图(我会把链接放在最后)
下面是插入%号的例子
[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]#
这里也放一个截图
总结
#号是表示从头部也就是从左边开始寻找,1个#号是寻找到第一个符合条件的,两个#号是寻找到最后一个 %号是表示从尾部也就是从右边开始寻找,1个%号是寻找到第一个符合条件的,两个%号是寻找到最后一个 最后再把寻找到的那个,包括往那个方向以前的删除。 最后最后把B站视频贴上www.bilibili.com/video/BV1Jb…