1. 变量内容的删除
一般来说,PATH变量都比较长,内容很多,因此变量内容删除的理解拿它来讲比较方便。
这里的内容都是干货
注意格式${变量名+指示符号+要删除的内容}
${}
在这种删除模式里是必须存在的
指示符号有#
,##
,%
,%%
#
代表从左向右删除最短的那个
##
代表从左到右删除最长的那个
%
代表从右向左删除最短的那个
%%
代表从右向左删除最长的那个
干货不理解很正常,还是看实例~~
- 截鸟哥的图来理解
#
:
在这里
变量名=path
指示符号=#
要删除的内容=/*local/bin:
(和👆的内容一一对应)有的朋友可能还会对
/*local/bin
有疑惑,还记得*
这个叫做通配符的东西吗,我觉得它的作用就如同省略号,/*local/bin
就指---起始为/
且结尾为local/bin:
的一切内容。#指删除符合要求的最短的内容,在上图就删掉了/user/local/bin:
。如果不理解也不要放弃,再看看##
你就明白了,对比是会辅助理解的~~
- 截鸟哥的图理解
##
- 截鸟哥的图理解
%
和%%
2.变量内容的取代
这里 /
可以帮助我们替换变量中的字符串
还是注意格式问题${变量/旧字符串/新字符串}
或${变量//旧字符串/新字符串}
直接上例子:
1-删除 与 2-取代 的大总结
3.变量的测试与内容替换
3.1变量的测试
- 变量的测试
echo ${变量名}
一般使用这条命令查看 - 主动设定变量内容的方法
这里有三种方法,各有千秋,应用时各取所需啊
-- (1)变量名=欲设定的内容
之前在Linux 之 Bash -- shell 的变量功能(一)里详细讲过变量的设定规则
-- (2)变量名=${变量名-欲添加的变量内容}
变量名=${变量名-欲添加的变量内容}
如果该变量名还没设定,可以通过这种方式主动给予该变量内容(注意:如果该变量名已经被设定,使用-
这种方式是无法主动替换变量内容的)
-- (3)变量名=${变量名:-欲添加的变量内容}
变量名=${变量名:-欲添加的变量内容}
加上「:」以后,无论变量内容为空或者是未设定,都能够用后面的内容替换。
3.2变量的内容替换
-
内容替换参考表:
-
测试内容:
根据 内容替换参考表 ,测试3中最后一问的var和str输出是多少?
感兴趣的伙伴把答案写在评论里吧~
如果看不懂可以略过,以后用到判断变量值时,回来看看或许就能理解了~