쉘 스크립트의 특성 파일 값을 기반으로 config.XML 필드 값을 가져오는 방법은 무엇입니까?

쉘 스크립트의 특성 파일 값을 기반으로 config.XML 필드 값을 가져오는 방법은 무엇입니까?

config.xml이라는 XML 파일이 있습니다.

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

내 속성 파일 내용은 다음과 같습니다.

빌드.소품

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 구분 기호는 일반적으로 /이지만 이 경우 변수가 이스케이프하지 않고 /를 포함하도록 허용하려면 @를 사용하는 것이 좋습니다.

관련 정보