Как получить значение поля config.XML на основе значения файла свойств в скрипте оболочки?

Как получить значение поля config.XML на основе значения файла свойств в скрипте оболочки?

У меня есть XML-файл с именем config.xml

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

Вот содержимое моего файла свойств

build.prop

Это необходимо для проверки задания от Jenkins. Здесь мы выполним операцию проверки.

Скрипт оболочки

Здесь я считываю файл свойств построчно, присваиваю значения файла свойств переменной и использую это значение в поле файла 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."

Примечание:Теперь я использовал config.xml в скрипте оболочки для изменения значения поля, но я хочу использовать переменную оболочки вне файла config.xml. Как мне представить путь и как мне ввести значения в файл config.xml?

решение1

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

Примечание: разделителем sed обычно является /, но в этом случае я предлагаю @, чтобы разрешить переменной включать / без экранирования.

Связанный контент