码迷,mamicode.com
首页 > 其他好文 > 详细

变量子串的常用操作

时间:2016-04-11 18:58:24      阅读:171      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!