【发布时间】:2018-05-22 04:26:54
【问题描述】:
在 bash 脚本中,当 t="hello.txt" 两者都有
${t%%.txt} 和 ${t%.txt} 返回 "hello"
${t##*.} 也是如此,${t#*.} 返回 "txt"。
它们之间有区别吗?它们是如何工作的?
【问题讨论】:
-
这些形式的参数扩展通常被称为带子串删除的参数扩展。
#- 从左边修剪到指定匹配的结尾,包括结尾。%- 从右侧修剪。 (下面的答案中的详细信息) -
请注意,
%和%%也用于printf内置函数的格式字符串中,并且具有不同且不相关的含义。 (添加以防标题误导某人)
标签: linux bash shell scripting