1

在安装程序期间,需要修改配置文件 (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 重新命名它,而且在脚本开头更改一堆变量显然更容易,而不是单个函数。

4

1 回答 1

2

尝试这个

sed -i 's/'"$B_PRODUCT"'Worker.log/'"$1.log"'/g' "log4j.properties"

您总是必须“关闭”单引号才能使变量展开(就像您对 $1 所做的那样)。

我希望这有帮助。

于 2012-05-02T20:31:33.120 回答