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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章