介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。
2024-08-30 04:55:15
介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。
假设定义了一个变量为:
代码如下:
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.file.txt
假设定义了一个变量为:
代码如下:
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.file.txt
最新文章
- Guava库介绍之实用工具类
- Google翻译之路
- 设计模式之依赖倒转原则(DIP)
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
- [讨论] win7封装时如何直接开通局域网共享
- 【转】第一次使用Android Studio时你应该知道的一切配置
- ZOJ3865:Superbot(BFS) The 15th Zhejiang University Programming Contest
- 【转】从零开始,让你的框架支持CocoaPods
- OC - 3.OC的三大特性
- RedHat7上安装PHP
- 在Mybatis中使用注解@多个參数查询
- 记录最近在使用sprintf构造字符串时遇到的一个问题
- 【分享】bootstrap学习笔记
- 51nod_1714:B君的游戏(博弈 sg打表)
- Django使用模板后无法找到静态资源文件
- hdu 3473 划分树
- 【Android 应用开发】Android 图表绘制 achartengine 示例解析
- 在IntelliJ IDEA中,注解@Slf4j找不到log
- Kaldi nnet3的fastlstm与标准LSTM
- mybatis学习 -每天一记 通用mapper 关于UUID回显的配置
热门文章
- Codeforces 1503E - 2-Coloring(组合数学)
- 1D RKDG to shallow water equations
- Nginx+uwsgi+django+vue部署项目
- javaSE高级篇5 — java8新特性详解———更新完毕
- 学习java 7.15
- accustom
- day02 Rsyuc备份服务器
- 一起手写吧!call、apply、bind!
- fastjson转换数字时,格式化小数点
- vue-cli 如何配置assetsPublicPath; vue.config.js如何更改assetsPublicPath配置;