在安装程序期间,需要修改配置文件(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"
我需要使用变量,因为我们需要为OEM重新命名这个变量,而且在脚本开头更改一堆变量显然更容易,而不是单个函数。
答案 0 :(得分:2)
试试这个
sed -i 's/'"$B_PRODUCT"'Worker.log/'"$1.log"'/g' "log4j.properties"
您必须“关闭”单引号才能进行变量展开(就像您使用$ 1一样)。
我希望这会有所帮助。