我使用如下代码通过 shell 的字符串操作工具创建一个日志文件:我有一个文件名,如果出现错误,我需要创建一个包含 err.log 的日志文件。
假设$fileName
是test.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