介绍下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 原文:https://blog.csdn.net/jiezi2016/article/details/79649382

最新文章

  1. oracle查询包含某个字段的表
  2. Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)
  3. 布局神器display:table-cell
  4. SQL问题集锦
  5. iOS-多线程-GCD
  6. DevExpress Form那些事儿
  7. Egret 双端接入爱贝支付遇到的问题
  8. C#拖动自己的定义标题栏(panel)以及实现窗体拖动关闭和最小化
  9. linux环境变量配置总结
  10. 小工具:截图&简单图像处理
  11. webpack4.x笔记-配置基本的前端开发环境(一)
  12. (转)python 开发 sqlite 绝对完整
  13. ASP.NET Web API2返回值处理流程
  14. 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:
  15. 【Java】加载驱动方法
  16. php-xdebug(安装)
  17. mysql命令行导入结构化数据
  18. WINDOWS SOCKET编程中accept出来的新连接是阻塞还是非阻塞
  19. IIS发布,无法显示CSS样式和图片
  20. 当Python与数模相遇

热门文章

  1. 解决MySQL在导入大文件时候,出现MySQL Server has gone away的问题
  2. C#实现百度ping功能
  3. weblogic启动脚本
  4. 【LeetCode】贪心 greedy(共38题)
  5. apt-get update 101错误解决办法
  6. vsftpd配置详解
  7. day17 python re模块 简易爬虫
  8. 人生苦短_我用Python_pymysql库对Mysql数据库操作_009
  9. php addcslashes()函数 语法
  10. 【CF906E】Reverses(回文自动机,最小回文分割)