bash的配置文件及字符串处

前端之家收集整理的这篇文章主要介绍了bash的配置文件及字符串处前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

bash的颜色显示规则:

调用ASCII编码对于颜色的设置方案


控制键:\033

[ 控制字符和颜色代码之间的分隔符;

所有的颜色代码都应该使用m结尾;


颜色代码

0:关闭颜色显示属性,恢复为黑白色

1:加粗显示文本字符

4:为文本字符添加下划线

5:使文本字符闪烁

7:将文本字符的背景颜色和前景颜色交换

8:将文本字符的背景颜色设置为与前景色相同



30 -39 :文本字符的前景色,38,39(保留项未被使用)

40 -49 :文本字符的背景色,48,49(保留项未被使用)

[root@localhost~]#echo-e"\033[31mHappy\033[0m"
Happy
[root@localhost~]#echo-e"\033[31;1mHappy\033[0m"
Happy
[root@localhost~]#echo-e"\033[31;1;5mHappy\033[0m"
Happy

注意:此类控制字符和颜色必须放置在echo -e 模式中显示,在输出结束时记得使用代码\033[0m关闭颜色显示属性,不然之后的文本均采用该颜色属性



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

bash变量:

弱变量:

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

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

  1. 字符串切片:


  2. [root@localhost~]#capable=everything_is_ok

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

[root@localhost~]#echo${#capable}
16

${VAR:offset}:返回字符型变量中第"offset"位置之后的内容,不包括第"offset"位置的字符;offset取值范围为:0-$[${#VAR}-1]

[root@localhost~]#echo${capable:11}
is_ok

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

[root@localhost~]#echo${capable:11:2}
is

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

[root@localhost~]#echo${capable:-5}
is_ok

注意:在"-length"之前要留有空格;

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

${VAR#*PATTERN}:自左而右,查找VAR变量所存储的字符串中,第一次被PATTERN匹配的字符,删除从字符串开始到第一个被PATTERN匹配的字符之间的所有字符;

[root@localhost~]#echo${capable#*y}
thing_is_ok

${VAR##*PATTERN}:自左而右,查找VAR变量所存储的字符串中,所有被PATTERN匹配的字符,删除从字符串开始到最后一次PATTERN匹配的字符之间的所有字符;

[root@localhost~]#echo${capable##*e}
rything_is_ok

${VAR%PATTERN*}:自右向左,查找VAR变量所存储的字符串中,第一次被PATTERN匹配到的字符,删除从字符串结尾到第一个被PATTERN匹配到的字符之间的所有字符;

[root@localhost~]#echo${capable%e*}
ev

${VAR%%PATTERN*}:自右向左,查找VAR变量所存储的字符串中,所有被PATTERN匹配到的字符,删除从字符串结尾到最后一个被PATTERN匹配到的字符之间的所有字符;

[root@localhost~]#echo${capable%%y*}
ever

3.查找替换:

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

[root@localhost~]#echo${capable/everything/nothing}
nothing_is_ok

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

[root@localhost~]#echo${capable//'_'/-}
everything-is-ok

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

[root@localhost~]#echo${capable/#ver/b}
everything_is_ok
[root@localhost~]#echo${capable/#ever/b}
bything_is_ok

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

[root@localhost~]#echo${capable/%is_ok/b}
everything_b

行尾匹配不需要倒写
4.查找删除

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

[root@localhost~]#echo${capable/e}
verything_is_ok

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

[root@localhost~]#echo${capable//e}
vrything_is_ok

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

[root@localhost~]#echo${capable/#every}
thing_is_ok

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

[root@localhost~]#echo${capable/%is_ok}
everything_

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

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

[root@localhost~]#echo${capable^^}
EVERYTHING_IS_OK

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

6.变量赋值:

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

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

[root@localhost~]#echo${capable-shadow}
everything_is_ok
[root@localhost~]#echo${capable+shadow}
shadow

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

7.变量的间接引用:

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

如:VAR1=VAR2,VAR2=hellolink

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

eval MYVAR=\$$VAR1

原文链接:https://www.f2er.com/bash/389545.html

猜你在找的Bash相关文章