2016-07-19 5 views
2

나는 OpenSSL이는 GNU 메이크에서 어떤 임의의 데이터를 생성하는 데 사용 :GNU make가이 변수를 확장 할 때마다 왜 내 쉘 명령을 다시 실행합니까?

RANDOM_DATA=$(shell /usr/bin/openssl rand -hex 32) 

내가 스크립트의 다른 곳에서이 RANDOM_DATA를 여러 번 사용할 수 있어야합니다. 그러나 참조 될 때마다 명령을 다시 실행하고 새 데이터를 반환합니다. 예를 들어, 래서 피의 다음 줄은 다른 값을 출력합니다 :

echo ${RANDOM_DATA} 
echo ${RANDOM_DATA} 
echo ${RANDOM_DATA} 

왜 이런 식으로 방지 할 수 있습니까?

답변

2

묻고 나서 답을 찾았습니다.

this page에 따르면 대신 :=을 사용해야 변수를 재귀 적으로 정의하지 않고 한 번 확장 할 수 있습니다.