替换大括号内变量中的字符串时使用什么 Bash 功能?

替换大括号内变量中的字符串时使用什么 Bash 功能?

https://stackoverflow.com/questions/12174947/removing-part-of-a-filename-for-multiple-files-on-linux#12175160,一段示例代码使用 Bash 功能,其中对变量内容的字符串操作无需显式调用sed或任何类似工具即可完成:

 mv "$filename" "${filename//thisstringgetsremoved/}"

这里使用了什么 Bash 功能,它是在后台调用 sed 还是依赖于正则表达式的内置实现(如果是这样,这里可以使用什么风格的正则表达式)?

答案1

这是参数扩展,并且它内置于 shell 中,它不依赖于sed.该模式不是正则表达式,而是文件名模式

基本参数展开为由 POSIX 指定; bash 实现添加了一些扩展。

相关内容