make
패턴 규칙에서 , 와 같은 변수를 내보내고 싶습니다 $(TargetLocation)
.$@
다음을 시도했지만 내보내지지 않았습니다. bash 스크립트는 실행 가능합니다.
export $(TargetLocation); \
export $@; \
./EditHtml.sh;
${VarA}
나는 또한 이것을 시도했지만 (내부 bash 스크립트 대신 사용했습니다 ${TargetLocation}
) 내보내지지 않았습니다.
./EditHtml.sh VarA=$(TargetLocation); \
Bash 스크립트에서 이러한 변수를 사용하고 싶습니다. 어떤 제안이 있으십니까?
답변1
값이 아닌 변수 이름을 내보내야 합니다.
export
GNU Make 문을 사용하여 모든 하위 프로세스의 이름을 내보낼 수 있습니다.
export TargetLocation
하나의 규칙 값만 필요한 경우 명령문은 일반 쉘 구문이어야 합니다.
export TargetLocation="$(TargetLocation)"; \
./EditHtml.sh
이 경우 변수의 내용에 따라 인용부호가 필요할 수 있으며, 변수에 임의의 값이 있을 경우에는 여전히 취약할 수 있다. 반면, 호출하는 사용자의 권한으로 make를 실행하면 추가적인 위험은 없습니다.