我正在编写一个脚本build.sh,它将从特定于环境的配置文件config..properties中读取并应用于所有配置文件并对其进行tar。请在下面找到示例代码。
- 文件config.dev.properties
LOG_THRESHOLD=DEBUG
- 文件build.sh
# load properties file
. ./config.dev.properties
echo $LOG_THRESHOLD
export LOG_THRESHOLD
tar xvf package_dev.tar package
- 文件包/ log4j.xml
<log threshold="$LOG_THRESHOLD"/>
-
在这里我想要运行tar或cp命令时,log4j.xml与替换值打包在一起
<log threshold="DEBUG"/>
在我的代码中,echo返回DEBUG。但在焦油中,它不适用于财产价值。
我错过了什么吗? 提前致谢。
答案 0 :(得分:0)
那不是......有什么作用。 shell与文件内容无关。
$ xmlstarlet ed -O -u '/log/@threshold' -v "foo" <<< '<log threshold="$LOG_THRESHOLD"/>'
<log threshold="foo"/>
将log4j.xml
重命名为log4j.xml.tmpl
,使用XMLStartlet生成新的log4j.xml
(提示:重定向),然后告诉tar排除模板文件。