重命名文件扩展名不起作用

重命名文件扩展名不起作用

我使用如下代码通过 shell 的字符串操作工具创建一个日志文件:我有一个文件名,如果出现错误,我需要创建一个包含 err.log 的日志文件。

假设$fileNametest.tmp

echo ' l_error_msg' >> $UPLOAD/output/$fileName.err

这将创建一个名为test.tmp.err.

因此我尝试使用下面的代码来创建test.err

echo ' l_error_msg' >> $UPLOAD/output/${$fileName%.*}.err

但这是行不通的。

答案1

给定一个变量foo="bar.baz",删除的正确语法.baz${foo%.*}

$ foo="bar.baz"
$ echo ${foo%.*}
bar

删除多余的部分$,它应该按预期工作:

$ fileName="test.tmp"
$ echo ${fileName%.*}.err 
test.err

答案2

尝试这个

echo ' l_error_msg' >> $UPLOAD/output/`echo $fileName|awk -F. '{print $1}'`.err

相关内容