标签:position
${#variable} 返回$string的长度
${variable:position} 在$string中,从位置$position之后开始提取子串
${variable:position:length} 在$string中,从位置$position之后开始提取长度为$length的子串
${variable#substring} 从变量$string开头开始删除最短匹配$substring子串
${variable##substring} 从变量$string开头开始删除最长匹配$substring子串
${variable%substring} 从变量$string结尾开始删除最短匹配$substring子串
[hdfs@cdh51kdc ~]$ echo ${cc%t*}
Value not set
${variable%%substring} 从变量$string结尾开始删除最长匹配$substring子串
[hdfs@cdh51kdc ~]$ echo ${cc%%t*}
Value not set
${variable/substring/replace} 使用replace,来代替第一个匹配的$substring
#!/bin/sh for i in $(ls |grep "jpg$"); do i=${i/finished/};echo $i done
结果:
[root@localhost ~]# sh for2.sh stu_10299_1_.jpg stu_10299_2_.jpg stu_10299_3_.jpg stu_10299_4_.jpg stu_10299_5_.jpg
${variable/#substring/replace} 如果$string前缀匹配$substring,就用$replace来代替匹配$substring
${variable/%substring/replace} 如果$string结尾匹配$substring,就用$replace来代替匹配$substring
#!/bin/sh for i in $(ls |grep "jpg$"); do i=${i/%jpg/mp4} done
结果:
[root@localhost ~]# sh for2.sh stu_10299_1_.mp4 stu_10299_2_.mp4 stu_10299_3_.mp4 stu_10299_4_.mp4 stu_10299_5_.mp4
五、变量替换
${value:-word} 如果变量value有赋值,则使用value的值,如果value没有赋值,则用后面的word给value赋值
${value-word} 如果变量value有赋值,则使用value的值,如果value没有赋值或为空,则返回word并用word给value赋值
${value:=word} 如果变量value有赋值,则使用value的值,如果value没有赋值,则用后面的word给value赋值
${value:+word} 如果value有赋值,则用word给value重新赋值,如果value没有赋值,则返回null。
${value:?"not defined"} 如果value没有赋值,则返回后面定义的错误,如果value有赋值,则什么都不返回。用来测试变量是否有值
本文出自 “初心、始终” 博客,谢绝转载!
标签:position
原文地址:http://gouyc.blog.51cto.com/1594451/1762677