我正在尝试从log4j.properties获取应用程序日志路径并尝试使其成为动态路径。 log4j.properties中的日志文件包含{catalina.base},我想用$ CATALINA_HOME环境变量替换它。 我在下面使用了字符串替换。
以下是代码;
/ *从log4j.properties * /
获取日志路径logfile = $(awk'/ LOGFILE.File/{print $ NF}'$ CATALINA_HOME / webapps /“$ filename”/WEB-INF/classes/log4j.properties | grep -Po'LOGFILE.File = \ K [^“] *')
/ *将{catalina.base}替换为$ CATALINA_HOME * /
convertlogfile = “$ {日志文件/”{catalina.base} “/ $ CATALINA_HOME}”
/ *参见输出* /
echo $ convertlogfile
问题是输出是: $的/ usr /本地/ Tomcat的/日志/ Application.log
我无法摆脱最初的'$'符号,我无法使用该路径。
答案 0 :(得分:0)
如果echo $convertlogfile
的输出为$/usr/local/tomcat/logs/Application.log
,
那么$logfile
的值必须是${catalina.base}
。
然后我不明白为什么你想要使用模式替换,只需:
convertlogfile=$CATALINA_HOME
但是无论如何,要在开始时删除$
,你可以像这样写下替换,但是再一次,我没有看到这一点:
convertlogfile="${logfile/"\${catalina.base}"/$CATALINA_HOME}"