Como obter o valor do campo config.XML com base no valor do arquivo de propriedades no shell script? [fechadas]

1

Eu tenho um arquivo XML chamado config.xml

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

Aqui está o conteúdo do meu arquivo de propriedade

build.prop

Isto é para verificar o trabalho de Jenkins. aqui vamos realizar a operação de checkout.

Script de shell

Aqui estou lendo o arquivo de propriedades linha por linha e atribuo os valores do arquivo de propriedades a uma variável e usei o valor no campo do arquivo 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."

Observação: agora usei o config.xml no script shell para alterar o valor do campo, mas desejo usar a variável shell fora do arquivo config.xml. Como devo representar o caminho e Como devo injetar os valores no arquivo config.xml.

    
por Ramyachinna 25.05.2017 / 07:33

1 resposta

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

Nota: o seperator sed normalmente é / mas sugiro @ neste caso para permitir que a variável inclua / sem escapar

    
por ADDB 25.05.2017 / 11:05