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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章