介绍下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
 
 

最新文章

  1. Guava库介绍之实用工具类
  2. Google翻译之路
  3. 设计模式之依赖倒转原则(DIP)
  4. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
  5. [讨论] win7封装时如何直接开通局域网共享
  6. 【转】第一次使用Android Studio时你应该知道的一切配置
  7. ZOJ3865:Superbot(BFS) The 15th Zhejiang University Programming Contest
  8. 【转】从零开始,让你的框架支持CocoaPods
  9. OC - 3.OC的三大特性
  10. RedHat7上安装PHP
  11. 在Mybatis中使用注解@多个參数查询
  12. 记录最近在使用sprintf构造字符串时遇到的一个问题
  13. 【分享】bootstrap学习笔记
  14. 51nod_1714:B君的游戏(博弈 sg打表)
  15. Django使用模板后无法找到静态资源文件
  16. hdu 3473 划分树
  17. 【Android 应用开发】Android 图表绘制 achartengine 示例解析
  18. 在IntelliJ IDEA中,注解@Slf4j找不到log
  19. Kaldi nnet3的fastlstm与标准LSTM
  20. mybatis学习 -每天一记 通用mapper 关于UUID回显的配置

热门文章

  1. Codeforces 1503E - 2-Coloring(组合数学)
  2. 1D RKDG to shallow water equations
  3. Nginx+uwsgi+django+vue部署项目
  4. javaSE高级篇5 — java8新特性详解———更新完毕
  5. 学习java 7.15
  6. accustom
  7. day02 Rsyuc备份服务器
  8. 一起手写吧!call、apply、bind!
  9. fastjson转换数字时,格式化小数点
  10. vue-cli 如何配置assetsPublicPath; vue.config.js如何更改assetsPublicPath配置;