web-dev-qa-db-fra.com

Comment utiliser la valeur du champ config.XML en fonction de la valeur du fichier de propriétés dans le script Shell?

J'ai un fichier XML appelé config.xml

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

Voici le contenu de mon fichier de propriétés

build.prop

Ceci est pour vérifier le travail de Jenkins. Ici, nous allons effectuer des opérations de caisse.

script shell

Ici, je lis le fichier de propriétés ligne par ligne et assigne les valeurs du fichier de propriétés dans une variable et utilise la valeur dans le champ du fichier 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."

Note: Maintenant, j'ai utilisé le fichier config.xml dans le script shell pour modifier la valeur du champ, mais je souhaite utiliser la variable shell en dehors du fichier config.xml.Comment dois-je représenter le chemin d'accès et comment injecter les valeurs dans le fichier config.xml.

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

Note: sed seperator est normalement/mais je suggère @ dans ce cas pour permettre à la variable d'inclure/sans s'échapper

0
ADDB