Linux 之 Bash -- shell 的变量功能(三)

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输出是多少?
    感兴趣的伙伴把答案写在评论里吧~
    如果看不懂可以略过,以后用到判断变量值时,回来看看或许就能理解了~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章