您的位置:首页 > 运维架构 > Shell

shell字符串处理

2014-04-10 23:38 267 查看
(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可以为字符串,也可以为变量,若为变量,前面要加$)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: