Linux shell ${}简单用法

Linux shell ${}简单用法

[转]http://linux.chinaunix.net/techdoc/develop/2007/05/05/956956.shtml

为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能: 假设我们定义了一个变量为: 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

记忆的方法为:

# 是去掉左边(在鉴盘上 # 在 $ 之左边)

% 是去掉右边(在鉴盘上 % 在 $ 之右边)

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

${file:0:5}:提取最左边的 5 个字节:/dir1 ${file:5:5}:提取第 5 个字节右边的连续 5 个字节:/dir2 我们也可以对变量值里的字符串作替换: ${file/dir/path}:将第一个 dir 提换为 path:/path1/dir2/dir3/my.file.txt ${file//dir/path}:将全部 dir 提换为 path:/path1/path2/path3/my

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏问天丶天问

Linux 字符串截取

20450
来自专栏腾讯IVWEB团队的专栏

玩转 JavaScript 正则表达式

正则表达式也能帮助我们方便的进行Find&Replace;的工作,由于正则表达式的流派很多,而作者比较熟悉JS,这篇文章主要是描述JavaScript中的正则表...

2.8K00
来自专栏Golang语言社区

【JS游戏编程基础】关于js里的this关键字的理解

this关键字在c++,java中都提供了这个关键字,在刚开始学习时觉得有难度,但是只要理解了,用起来就方便多了,下面通过本篇文章给大家详解js里this关键字...

491100
来自专栏Golang语言社区

Go语言中字符串的查找方法小结

1.func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true import ( ...

369100
来自专栏Python小屋

详解Python切片技术

切片也是Python序列的重要操作之一,除了适用于列表之外,还适用于元组、字符串、range对象,但列表的切片操作具有最强大的功能。不仅可以使用切片来截取列表中...

34340
来自专栏java工会

你真的了解Override吗,属性能够被重写吗?

最近想到了一个问题,Java的属性能够被Override吗?首先让我们看一下下面这个继承的例子。

21640
来自专栏Golang语言社区

【基础篇】Go 语言范围(Range)

Go 语言范围(Range) Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)...

390160
来自专栏张善友的专栏

c#处理空白字符

空白字符是指在屏幕不会显示出来的字符(如空格,制表符tab,回车换行等)。空格、制表符、换行符、回车、换页垂直制表符和换行符称为 “空白字符”,因为它们为与间距...

24760
来自专栏菜鸟前端工程师

JavaScript学习笔记003-函数0属性0模板字符串

10520
来自专栏Golang语言社区

Go 语言范围(Range)

Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元...

33250

扫码关注云+社区

领取腾讯云代金券