假设我们定义了一个变量为:
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-my.file.txt} :假如 $file 为空值,则使用 my.file.txt 作默认值。(保留没设定及非空值)
${file:-my.file.txt} :假如 $file 没有设定或为空值,则使用 my.file.txt 作默认值。 (保留非空值)
${file+my.file.txt} :不管 $file 为何值,均使用 my.file.txt 作默认值。 (不保留任何值)
${file:+my.file.txt} :除非 $file 为空值,否则使用 my.file.txt 作默认值。 (保留空值)
${file=my.file.txt} :若 $file 没设定,则使用 my.file.txt 作默认值,同时将 $file 定义为非空值。 (保留空值及非空值)
${file:=my.file.txt} :若 $file 没设定或为空值,则使用 my.file.txt 作默认值,同时将 $file 定义为非空值。 (保留非空值)
${file?my.file.txt} :若 $file 没设定,则将 my.file.txt 输出至 STDERR。 (保留空值及非空值))
${file:?my.file.txt} :若 $file 没设定或为空值,则将 my.file.txt 输出至 STDERR。 (保留非空值) 还有,${#var} 可计算出变量值的长度:
${#file} 可得到 27 ,因为 /dir1/dir2/dir3/my.file.txt 刚好是 27 个字节...

最新文章

  1. 51Nod 算法马拉松21(迎新年)
  2. 解决IntelliJ IDEA无法读取配置文件的问题
  3. 详解BOM头以及去掉BOM头的方法
  4. 【BZOJ 4569】【SCOI 2016】萌萌哒
  5. 关于TCP协议握手的那些事儿
  6. dedecms 文章页调用来源合适时间的方法
  7. mysql建表且某字段内不允许出现重复值
  8. java基础(二十一)IO流(四)
  9. 一个小的程序--实现中英文切换(纯css)
  10. jquery实现简单鼠标经过图片预览效果
  11. iOS多线程的初步研究(六)
  12. phpDocumentor2安装配置和使用
  13. jquery滚动条加载数据
  14. Nodejs运行错误小结
  15. 移动端判断ios还是android终端
  16. (译)内存沉思:多个名称相关的神秘的SQL Server内存消耗者。
  17. 【liunx】date命令总结
  18. Vue2+Webpack创建vue项目
  19. SQLite简单介绍
  20. Java编程思想第四版勘误

热门文章

  1. VMware中解决ubuntu不能连接网络问题。(亲测有效)
  2. CI加载model的问题
  3. YII2之 Scenario
  4. 【POJ2104】K-th Number
  5. 保存emoji到数据库
  6. 在CentOS下搭建自己的Git服务器
  7. 点击空白处 div隐藏掉了
  8. SQL Server 从数据库中查询去年的今天的数据的sql语句
  9. 如何生成git的公钥和私钥
  10. Webbench性能测试