如何根据 shell 脚本中的属性文件值获取 config.XML 字段值?

如何根据 shell 脚本中的属性文件值获取 config.XML 字段值?

我有一个名为 config.xml 的 XML 文件

<builders>
    <hudson.tasks.Shell>
      <command>$RA_CHEKOUT_SHELL_COMMAND</command>
    </hudson.tasks.Shell>
  </builders>

这是我的财产文件内容

构建属性

这是从詹金斯签出工作。在这里我们将执行结帐操作。

Shell 脚本

这里我逐行读取属性文件并将属性文件值分配到变量中并在 config.xml 文件字段中使用该值。

file="/var/lib/jenkins/workspace/Env-inject-example2/build.prop"
counter=1

while IFS= read line
do
    # display $line 
    echo "Text read from file: $line" 
    counter=`expr $counter + 1`
    name=$(cat "$file") 
    echo $name 
    echo "Change values in config.xml..."
done <"$file"
cat <<EOF 
<?xml version="1.0" encoding="UTF-8"?>
<config>
   <builders>
    <hudson.tasks.Shell>
      <command>$name</command>
    </hudson.tasks.Shell>
  </builders>
</config>
EOF  
echo "Done."

笔记:现在我已经使用 shell 脚本中的 config.xml 来更改字段值,但是我想使用 config.xml 文件之外的 shell 变量。我应该如何表示路径以及如何将值注入 config.xml 文件。

答案1

sed "s@PatternThatShouldBeReplaced@$name" /Path/To/config.xml

注意:sed 分隔符通常是 / ,但在这种情况下我建议使用 @ ,以允许变量包含 / 而无需转义

相关内容