在文本文件上应用shell变量值

时间:2015-02-27 18:55:27

标签: shell build

我正在编写一个脚本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。但在焦油中,它不适用于财产价值。

我错过了什么吗? 提前致谢。

1 个答案:

答案 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排除模板文件。