本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Shell
  • 【Linux Shell脚本编程】变量内容的删除、替换与切片

【Linux Shell脚本编程】变量内容的删除、替换与切片

发布:TangLu2017-12-4 18:02分类: Shell 标签: 变量 bash shell

一、Shell中对变量内容做切片操作。常用来取变量指定部分的内容,比如变量是一个FQDN,我们只想要主机名部分的内容,效果如图:

1.png

示例:

url=www.linuxe.cn
echo ${#url}  #获得变量长度
echo ${url#www.}    #井号代表从变量起始位置开始往后删除所指定的内容,支持通配符
echo ${url#*xe}    #星号作为统配符将变量中第一个xe前面的内容删除
echo ${url##*xe}    #两个井号的话会进行贪婪匹配,匹配到变量中最后一个xe结尾的地方为止
echo ${url%.cn}    #百分号是从变量尾部开始往前删除    
echo ${url%%.*}    #从尾部开始,贪婪匹配
echo ${url:0:5}    #从变量第一个字符开始切片,直到第五个字符
echo ${url:5:5}    #从变量第五个字符开始切片,再往后取五个字符
echo ${url:5}    #从第五个字符开始切,直到结尾


二、变量内容的替换。使用方法就和vi与sed中文本替换一样

url=www.linuxe.cn
echo ${url/linuxe/LINUXE}


2.png

三、变量内容的替代。常用于检查变量是否赋值,避免影响系统中已经定义过的变量

1、对未定义的变量进行内容的替换,可以用来给变量设置默认值

unset var1    #删除var1变量
echo ${var1-test}    #输出内容将会是test
var2=hello    #var2已经定义了内容
echo ${var2-test}    #输出内容仍然是hello
var3=    #定义var3变量为空
echo ${var3-test}    #输出内容是空值


2、对未定义的变量或其值为空的变量进行内容的替换

unset var1    #删除var1变量
echo ${var1:-test}    #输出内容将会是test
var2=hello    #var2已经定义了内容
echo ${var2:-test}    #输出内容仍然是hello
var3=    #定义var3变量为空
echo ${var3:-test}    #输出内容是test

除了上述之外,还有“+”“:+”、“=”“:=”、“?”“:?”这么6种实行变量替换的方法

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《【Linux Shell脚本编程】变量内容的删除、替换与切片
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-263.html  [生成短网址]

已有 0/1451 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~