0

파일에서 변수를 읽고 GoCD에서 환경 변수 정의로 바꾸는 셸 스크립트를 작성하려고합니다. 변수 값을 GoCD의 Environment 매개 변수로 사용

지금 내가 직면하고있어 문제는 내가 매개 변수로 변수의 값을 사용하기 위해 노력하고있어입니다 아래

는 Env_var = GoCD 환경 변수 또한
#!/bin/bash 
filename="keyword.txt" 
while IFS="," read f1 f2 f3 
do 
     f6="Env_var" 
     a="$($f6)" 
     echo $a 
     # echo "$f1" "$f3" 
     # sed -i s|$f1|$($f6)|g /var/lib/go-agent/pipelines/StormCluster-Deploy-2/"$f3".xml 
done < "$filename" 

은, 내가 준 내 스크립트입니다 내가 그 원하는대로 이제 여기에 스크립트가 출력 $ Env_var

을주고있다 1234

$ 봉투 _var 값, 즉 1234는 GoCD에서 환경 변수로 정의됩니다. 변수는 출력이어야합니다.

친절히 도움!

답변

0

문제는 GoCD가 아니라 잘못된 매개 변수 확장이라고 생각합니다. 당신이 아마해야 할 것은 :

a="${!f6}" 

당신은 Shell Parameter Expansion 섹션에서 그것에 대해 자세한 내용을보실 수 있습니다.

+0

심지어 이것은 값이 출력되지 않기 때문에 심지어 실행되지 않습니다. – Yushi

+0

그것은 나를 위해 bash에서 작동합니다. 그것을 시도하십시오 : https://www.jdoodle.com/embed/v0/bash/4.2.42/2DR – grundic

관련 문제