bash的变量中存放的字符串的处理方式
2017-12-01 16:53
337 查看
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
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
相关文章推荐
- #8 bash变量中的字符串处理
- bash变量字符串处理和数组
- bash颜色显示方案、bash配置文件及bash变量字符串处理
- 其他文本处理命令以及bash变量中的一些字符串的处理方法
- hell 如何在bash脚本中连接两个字符串变量
- C++编程入门系列之三十三(数组、指针和字符串:用字符数组存放和处理字符串)
- bash 字符串处理
- 如何用java实现不同编码方式字符串的转换(包含异常处理、重复不终止输入、缓冲区bufferedreader的使用)
- BASH 中的字符串处理
- bash中字符串的处理(转)
- C# 基础知识 (五).变量类型和字符串处理
- Shell脚本编程——字符串变量处理
- OCCI处理CHAR类型字符串变量的不同
- 嵌入式学习心得十---变量常量及其存放方式y
- [Android] JNI 中传递字符串参数(String)的安全处理方式
- Linux自学笔记——Bash脚本之数组以及内置字符串处理
- Bash字符串处理(与Java对照) - 19.查找字符的位置
- shell中字符串处理方式
- (原创)c#学习笔记05--变量的更多内容03--字符串的处理
- jquery ajax post 方式 data中以json形式并且定义的是拼接好的字符串变量