${filename}用法一:${file内部的#%的匹配方式}
假设我们定义了一个变量为:
file=/dir1/dir2/dir3/my.file.txt
我们可以用${ }分别替换获得不同的值:
${file#*/}:拿掉第一条/及其左边的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最后一条/及其左边的字串:my.file.txt
${file#*.}:拿掉第一个.及其左边的字串:file.txt
${file##*.}:拿掉最后一个.及其左边的字串:txt
${file%/*}:拿掉最后条/及其右边的字串:/dir1/dir2/dir3
${file%%/*}:拿掉第一条/及其右边的字串:(空值)
${file%.*}:拿掉最后一个.及其右边的字串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一个.及其右边的字串:/dir1/dir2/dir3/my
注解:
#是去掉左边 (在键盘上#在${}之左边)
%是去掉右边(在键盘上%在${}之右边)
# % %:从左边数第一条,从右边数最后一条
## % : 从右边数第一条,从左边数最后一条
随机推荐
- 【DSP开发】回马枪要你命 德州仪器发布最强ARM芯片Keystone II
之前许多传闻称德州仪器将会彻底放弃OMAP系列ARM处理器,从此离开手持设备的江湖.如果你信以为真,那可就太小看德州仪器这个老狐狸了--要知道德州仪器诞生的比Intel都还早几年.三小时前,德州仪器宣 ...
- C++之用程序理解浅拷贝
C++中的浅拷贝是产生很多问题的根本原因,其根本原因是在有指针的时候,只是拷贝了一个指针的值,多个指针指向同一块内存区域,当free内存时,造成其他指针指向的空间不存在.结合构造函数和析构函数理解浅拷 ...
- (转)shell脚本使用curl获取访问网站的状态码
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com -I 仅测试HTTP头-m 10 最多查询10s-o /dev/null 屏蔽原 ...
- 图解DMZ
图解DMZ 1. 概念介绍 DMZ是英文“demilitarized zone”的缩写,中文译为“隔离区”.“非军事区”.它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安 ...
- mysql大数据量插入参考
Mysql 千万数据10秒批量插入只需三步第一步:配置my.ini文件文件中配置bulk_insert_buffer_size=120M 或者更大将insert语句的长度设为最大.Max_allowe ...
- js数据结构-链表
链表和数组 大家都用过js中的数组,数组其实是一种线性表的顺序存储结构,它的特点是用一组地址连续的存储单元依次存储数据元素.而它的缺点也正是其特点而造成,比如对数组做删除或者插入的时候,可能需要移动大 ...
- mysql索引失效的情况
1.WHERE字句的查询条件里有不等于号(如:WHERE column!=...),MYSQL将无法使用索引: 2.WHERE字句的查询条件里使用了函数的列(如:WHERE DAY(column)=. ...
- mongoose操作笔记
一.mongoose文档地址: https://cn.mongoosedoc.top/docs/api.html#update_update https://www.cnblogs.com/web-f ...
- sql--left join,right join, inner join
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...
- O017、部署DevStack
参考https://www.cnblogs.com/CloudMan6/p/5357273.html 本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点.详细的部署和配置可以 ...