Sed扩展失败

Sed扩展失败,sed,Sed,在安装程序期间,需要修改配置文件(log4j.properties) 一行log4j.properties包含 log4j.appender.R.File=${catalina.base}/logs/OurProductWorker.log 我们想把它改成 log4j.appender.R.File=${catalina.base}/logs/OurProductWorker5.log (或类似数字) 这项工作: sed -i 's/OurProductWorker.log/'"$1.log

在安装程序期间,需要修改配置文件(log4j.properties)

一行log4j.properties包含

log4j.appender.R.File=${catalina.base}/logs/OurProductWorker.log
我们想把它改成

log4j.appender.R.File=${catalina.base}/logs/OurProductWorker5.log
(或类似数字)

这项工作:

sed -i 's/OurProductWorker.log/'"$1.log"'/g' "log4j.properties"
$1
=调用的函数中从1到9的数字)

这失败了:

B_PRODUCT=OurProduct 
sed -i 's/"$B_PRODUCT"Worker.log/'"$1.log"'/g' "log4j.properties"
我需要使用一个变量,因为我们需要为原始设备制造商重新命名,而且在脚本开始时更改一组变量显然比更改单个函数更容易。

试试这个

sed -i 's/'"$B_PRODUCT"'Worker.log/'"$1.log"'/g' "log4j.properties"
您必须始终“关闭”单引号才能展开变量(就像您使用$1所做的那样)

我希望这有帮助