bash中的“ $ {file%。*}”是什么意思

用户名

我正在阅读《使用bash》,如何删除特定目录中所有文件的扩展名?可接受的答案是:

for file in "$path"/*; do
    [ -f "$file" ] || continue
    mv "$file" "${file%.*}"
done

我不明白这句话:

    mv "$file" "${file%.*}"

尽管阅读了许多资源,例如http://mywiki.wooledge.org/BashGuide/Patterns

这是怎么回事

葡萄酒

这是参数扩展的一种形式

"${file%.*}"表示“变量file减去最右边的期间之后的所有内容”。${file%%.*}"将引用最左边的时间段。

这是${%}运算符和Glob的组合

编辑:我很难进行此“子字符串删除”扩展,直到我注意到它#位于的“左侧” $,而%位于右侧。在使用Bash作为脚本语言时,参数扩展是必不可少的组成部分。我建议练习。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章