在一行代码中使用basename替换扩展名

时间:2016-05-17 20:36:46

标签: linux

在bash linux中

v1=$(basename $0)           gives filename.ext

v1=${v1%.*}.log             replaces ext  filename.log

如何组合成一行?当我在下面尝试时,我得到了错误的替换错误

v1={($(basename $0))%.*}.log

谢谢

1 个答案:

答案 0 :(得分:1)

您只能在参数上使用参数扩展,因此一般情况下您无法执行此操作。

但是,在这种特定情况下,您可以对操作进行重新排序,因为首先是基本名称还是剥离扩展名并不重要:

v1=$(basename "${0%.*}.log")