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