shell截取变量名

shell 经常要对文件名进行处理,比如去除路径只保留文件名。
很方便的方法如下:

${varible#*string}               从左往右,删除最短的一个以string结尾的子串,即截取第一个string子串之后的字符串
${varible##*string}             从左往右,删除最长的一个以string结尾的子串,即截取最后一个string子串之后的字符串
${varible%string*}              从右往左,删除最短的一个以string开头的子串,即截取最后一个string子串之前的字符串
${varible%%string*}          从右往左,删除最长的一个以string开头的子串,即截取第一个string子串之前的字符串

总结起来:从左向右#,从右向左%,*在哪删除那。

另外也可以从固定位置截取。

${varible:start:len}:截取变量varible从位置start开始长度为len的子串。第一个字符的位置为0。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容