加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash的变量中存放的字符串的处理方式

发布时间:2020-12-15 09:12:42 所属栏目:安全 来源:网络整理
导读:bash的变量中存放的字符串的处理方式 bash变量: 弱变量: 1.无需实现定义即可应用; 2.变量没有数据类型的硬性要求,默认是字符型; 1.字符串切片: ${#VAR}:返回字符型变量的变量值长度; ${VAR:offset}:返回字符型变量中第“offset”位置之后的内容,不包

bash的变量中存放的字符串的处理方式

bash变量:

弱变量:

1.无需实现定义即可应用;

2.变量没有数据类型的硬性要求,默认是字符型;



1.字符串切片:

${#VAR}:返回字符型变量的变量值长度;

${VAR:offset}:返回字符型变量中第“offset”位置之后的内容,不包括第“offset”位置的字符:

offset取值范围:0-$[${#VAR-1}]

${VAR:offset:number}:返回字符型变量中从第“offset”个字符后开始长度为“number”的字符部分;

${VAR:-length}:取字符型变量字符串最右侧的“length”个字符;


注意:在“length”之前要留有空格;





2.基于模式(PATTERN)取字符串:

${VAR*PATTERN}:自左而右,查找VAR变量所存储的字符串中,第一次被PATTERN匹配的字符,

删除从字符串开始到第一个被PATTERN匹配到的字符之间的所有字符;


${VAR##*PATTERN}:自左而右,查找VAR变量所存储的字符串中,第一次被PATTERN匹配的字符,

删除从字符串开始到最后一个被PATTERN匹配到的字符之间的所有字符;

${VAR%PATTERN*}:自右而左,查找VAR变量所存储的字符串中,第一次被PATTERN匹配的字符,

删除从字符串开始到第一个被PATTERN匹配到的字符之间的所有字符;


${VAR%%PATTERN*}:自右而左,查找VAR变量所存储的字符串中,所有被PATTERN匹配的字符,

删除从字符串结尾到最后一个被PATTERN匹配到的字符之间的所有字符;



3.查找替换:

${VAR/PATTERN/SUBSTRING}:在VAR变量中,自左而右查找能够被PATTERN匹配的内容,将其中第一个匹配到的结果更换成SUBSTRING;

${VAR//PATTERN/SUBSTRING}:在VAR变量中,自左而右查找能够被PATTERN匹配的内容,将所有被PATTERN匹配到的结果更换成SUBSTRING;

${VAR/#PATTERN/SUBSTRING}:在VAR变量中查找行首匹配PATTERN的内容,将匹配的结果更换成SUBSTRING;

${VAR/%PATTERN/SUBSTRING}:在VAR变量中查找行尾匹配PATTERN的内容,将匹配的结果更换成SUBSTRING;


4.查找删除:

${VAR/PATTERN}:在VAR变量中,自左而右查找能够被PATTERN匹配的内容,将其中第一个匹配到的结果删除;

${VAR//PATTERN}:在VAR变量中,自左而右查找能够被PATTERN匹配的内容,将其中所有匹配到的结果删除;

${VAR/#PATTERN}:在VAR变量中查找行首匹配PATTERN的内容,将匹配的结果删除;

${VAR/%PATTERN}:在VAR变量中查找行尾匹配PATTERN的内容,将匹配的结果删除;


5.字符串的大小写转换:

${VAR^^}:将VAR变量中的所有的小写字母转换成大写字母;

${VAR,}:将VAR变量中的所有的大写字母转换成小写字母;



6.变量赋值:

${VAR:-value}:如果变量VAR为空值或者变量未被定义,那么直接返回value中的值;否则返回变量VAR的值;

${VAR:+value}:如果变量VAR已经定义且不为空,则返回value的值;

${VAR:=value}:如果变量VAR为空值或者变量未被定义,那么直接返回value中的值,并且将value的值赋给变量VAR;否则返回变量VAR的值;


7.变量的间接引用:

如果第一个变量的值恰好是第二个变量的变量名,从第一个变量引用第二个变量的值的方法,就称为变量的间接引用,也称为间接变量引用;

如:VAR1=VAR2,VAR2=hellolink


bash提供了这样的间接变量引用的方法:

eval MYVAR=$$VAR1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读