假设:filename=/dir1/dir2/dir3/my.filename.txt

1.单一符号是最小匹配﹔两个符号是最大匹配。

${filename::}:提取最左边的5个字节:/dir1

${filename::}:提取第5个字节右边的连续5个字节:/dir2

note:

${#var}可计算出变量值的长度:

${#filename}可得到27,因为/dir1/dir2/dir3/my.filename.txt刚好是31个字节

2.对变量值里的字串作替换:

${filename/dir/path}:将第一个dir提换为path:/path1/dir2/dir3/my.filename.txt

${filename//dir/path}:将全部dir提换为path:/path1/path2/path3/my.filename.txt

3.利用${ }还可针对不同的变数状态赋值(没设定、空值、非空值):

${filename-my.filename.txt}:假如$filename没有设定,则使用my.filename.txt作传回值。(空值及非空值时不作处理)

${filename:-my.filename.txt}:假如$filename没有设定或为空值,则使用my.filename.txt作传回值。(非空值时不作处理)

${filename+my.filename.txt}:假如$filename设为空值或非空值,均使用my.filename.txt作传回值。(没设定时不作处理)

${filename:+my.filename.txt}:若$filename为非空值,则使用my.filename.txt作传回值。(没设定及空值时不作处理)

${filename=my.filename.txt}:若$filename没设定,则使用my.filename.txt作传回值,同时将$filename赋值为my.filename.txt。(空值及非空值时不作处理)

${filename:=my.filename.txt}:若$filename没设定或为空值,则使用my.filename.txt作传回值,同时将$filename赋值为my.filename.txt。(非空值时不作处理)

${filename?my.filename.txt}:若$filename没设定,则将my.filename.txt输出至STDERR。(空值及非空值时不作处理)

${filename:?my.filename.txt}:若$filename没设定或为空值,则将my.filename.txt输出至STDERR。(非空值时不作处理)

随机推荐

  1. 【转帖】安卓的Bionic 简介

    https://blog.csdn.net/yongyu_it/article/details/52574797 google 自己实现了一套libc 的库函数 比glibc 要小一些 占用内存也小. ...

  2. js预解析实例

    <script> // f1(); // console.log(c);//9 // console.log(b);//9 // console.log(a);//报错 // functi ...

  3. Ruby Rails学习中:调试信息和 Rails 的三种环境,Users 资源,调试器,Gravatar 头像和侧边栏

    注册 一.调试信息和 Rails 环境 现在咱们要实现的用户资料页面是我们这个应用中第一个真正意义上的动态页面.虽然视图的代码不会动态改变, 不过每个用户资料页面显示的内容却是从数据库中读取的.添加动 ...

  4. Codeforces 1236C. Labs

    传送门 注意到 $f(X,Y)+f(Y,X)$ 是一个定值(因为每个元素都不相同) 所以如果能让 $f(X,Y)$ 与 $f(Y,X)$ 尽可能接近,那么一定是最优的 所以可以这样构造:把 $n^2$ ...

  5. 六一广告页H5全屏滚动效果实现

    明天就六一儿童了(放假了),在这里提前祝大家周末快乐,每逢节假日公司必然会推出h5活动页的需求,这次六一儿童节也不例外,产品这次倒是没提什么互动效果需求,只不过根据UI妹子给的设计图,图片与图片中颜色 ...

  6. SSE笔记

    1.8位加: *(__m128i*)(dest + i * 16) = _mm_add_epi8(*(__m128i*)(srcA + i * 16), *(__m128i*)(srcB + i * ...

  7. ObjectMapper用于将java对象转换为json格式数据以及JSONObject对象解析json格式数据

    ObjectMapper objectMapper = new ObjectMapper(); //反序列化的时候如果多了其他属性,不抛出异常 objectMapper.configure(Deser ...

  8. vue的使用与安装 npm -v报错

    1.先将node从官方文档下载下来,然后进行安装. 安装成功后,在dos命令中node -v.npm -v来测试,如果成功就可以安装cnpm(国内淘宝镜像比较快).这里我遇到一个bug,npm -v压 ...

  9. CSS选择器(通配符选择器、标签选择器、类选择器、id选择器、群组选择器、后代选择器、子元素选择器和相邻元素选择器)

    通配符选择器  *   与任何元素匹配 派生选择器: 后代选择器(包含选择器):后代选择器可以选择作为元素后代的元素 A B    对A元素中的B元素应用样式 后代选择器中两个元素间的层次间隔可以是无 ...

  10. Linux--环境变量配置文件

    Linux系统中环境变量配置文件分为两类: 全局环境变量配置文件 /etc/profile 用户环境变量配置文件 ~/.bash_profile . ~/.bash_login ~/.profile ...