shell变量内容的删除、替代

url=www.computergame.com  #定义一个变量

echo ${#url}              #变量字符串数量统计

20

echo ${url:0:10}        #变量中字符串的截取,变量的切片操作

www.comput

echo ${url:5}          #变量切片操作,不指定切片数量,默认取所有

computergame.com

echo ${url#www.}           #变量内容的删除,#代表从前往后删

computergame.com

echo ${url#*.}         #删除到第一个匹配的.结束

computergame.com

echo ${url##*.}          #变量内容的删除,##代表贪婪匹配,删除到最后一个.结束

com

echo ${url%.com}        #变量内容的删除,%代表从后往前删除

www.computergame

echo ${url%.*}           #从后往前删,删除到匹配的第一个.结束

www.computergame

echo ${url%%.*}             #从后往前删,删除到匹配的最后一个.结束,%%代表贪婪匹配

www

echo ${url/game/GAME}     #变量内容的替换,将game替换成GAME

www.computerGAME.com

echo ${url/m/M}        #变量的替换,/代表替换,将m替换成M,默认只替换匹配到的第一个m

www.coMputergame.com

echo ${url//m/M}         #变量的替换,//代表贪婪匹配,替换所有的m为M

www.coMputergaMe.coM

unset var1

echo ${var1-aaa}        #变量的替代,-代表变量内容的替代;变量为空时替代为指定的变量内容

aaa

var2=bbbb

echo ${var2-xxxxxxxxxxx}   #变量内容的替代,变量已经被赋值,包括空值,变量内容都不会被替代。

bbbb

var3=ccccc

echo ${var3:-xxxxxxxxxx}  #变量内容的替代,变量已经被赋值,变量内容不会被i替代。

ccccc    

var4=

echo ${var4:-xxxxxxxxx}   #变量内容的替代,变量已被赋值,但是变量值为空,则会被替代。

xxxxxxxxx

-  :-作用:如何给变量设置默认值

小结:${变量名-新变量值}   变量没有被赋值,使用"新变量值"替代;变量有被赋值(包括空值),不会被替代。

   ${变量名:-新变量值}  变量没有被赋值,包括空值,使用"新变量值"替代;变量有被赋值,不会被i替代。

+  :+     =  :=       ?  :?可以继续尝试测试

原文地址:https://www.cnblogs.com/xiaofeng666/p/10843321.html