Make 내부에서 호출된 Bashscript에 Make 변수를 전달합니다.

Make 내부에서 호출된 Bashscript에 Make 변수를 전달합니다.

make패턴 규칙에서 , 와 같은 변수를 내보내고 싶습니다 $(TargetLocation).$@

다음을 시도했지만 내보내지지 않았습니다. bash 스크립트는 실행 가능합니다.

export $(TargetLocation); \
export $@; \
./EditHtml.sh;

${VarA}나는 또한 이것을 시도했지만 (내부 bash 스크립트 대신 사용했습니다 ${TargetLocation}) 내보내지지 않았습니다.

./EditHtml.sh VarA=$(TargetLocation); \

Bash 스크립트에서 이러한 변수를 사용하고 싶습니다. 어떤 제안이 있으십니까?

답변1

값이 아닌 변수 이름을 내보내야 합니다.

exportGNU Make 문을 사용하여 모든 하위 프로세스의 이름을 내보낼 수 있습니다.

export TargetLocation

하나의 규칙 값만 필요한 경우 명령문은 일반 쉘 구문이어야 합니다.

    export TargetLocation="$(TargetLocation)"; \
    ./EditHtml.sh

이 경우 변수의 내용에 따라 인용부호가 필요할 수 있으며, 변수에 임의의 값이 있을 경우에는 여전히 취약할 수 있다. 반면, 호출하는 사용자의 권한으로 make를 실행하면 추가적인 위험은 없습니다.

관련 정보