shell字符串處理

(1)、${value:-word}:如果變量value沒有定義或者是空字符串,則返回word,否則返回value;
(2)、${value:=word}:如果變量value沒有定義或者是空字符串,則返回word,並且把word複製給value,否則返回value;
(3)、${value:%message}:如果value不是一個空字符串,那就什麼也不做。否則,message會被髮送到標準錯誤輸出,並且程序會退出;
(4)、${value:+word}:如果value不是一個空字符串,返回值將會是word。
(5)、${value:offset}和${value:offset:length}:從變量value獲得子串,offset爲偏移量,length爲要獲得子串的長度;
(6)、${#value}:獲得變量value的字符個數;
(7)、${value#pattern}和${value##pattern}:去掉value開頭與pattern匹配的部分。
(8)、${value%pattern}和${value%%pattern}:和上面的一樣,但是它的匹配在尾部。
(9)、${value/pattern/string}和${value//pattern/string}:在變量value中,用string替換掉和pattern匹配的部分,這個替換不會改變原來value的值;
(10)、${value%.*}和${value%%.*}:刪除value字符串中以分隔符“.”匹配的右邊字符,保留左邊字符,"*"爲通配符,"."爲分隔符,可以爲多個字符;
(11)、${value#*.}和${value##*.}:刪除value字符串中以分隔符“.”匹配的左邊字符,保留右邊字符;
(注1:#,%,/ 都是最短匹配,而##,%%,// 都是貪婪匹配,匹配最長,在用到通配符時,這個比較有用)。
(注2:word可以爲字符串,也可以爲變量,若爲變量,前面要加$)。
發佈了52 篇原創文章 · 獲贊 16 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章