Bash 스크립트에서 변수 내보내기가 작동하지 않습니다. 변수를 다른 이름으로 변경하면 작동합니다.

Bash 스크립트에서 변수 내보내기가 작동하지 않습니다. 변수를 다른 이름으로 변경하면 작동합니다.

이것은 내가 본 것 중 가장 이상한 행동입니다. 아래 설명을 보시면 충격을 받으시겠지만, 그렇습니다. 이런 일이 일어나고 있습니다.

LON_GEMINI_BOXBash 스크립트에서 변수 이름을 내보내려고 합니다.

그리고 구체적인 내용을 정의하기 위해 makefile에서 이 변수의 값에 액세스해 보세요.

다음과 같습니다. bash 스크립트에서,

export LON_GEMINI_BOX = 1

make 파일에서,

ifeq ($(LON_GEMINI_BOX), 1)
This is how im defined
EXTRA_CFLAGS += 
EXTRA_CFLAGS += 
else
why is this happening
endif

저는 빌드 과정 중에 항상 다른 부분에 개입합니다. 변수 이름 LON_GEMINI1_BOX을 다른 것으로 조정하면 LON_GEMINI_BOX예상대로 내보내지고 작동합니다.

문제가 무엇인지 알아 내려고 노력하고 있습니다.

답변1

Makefile 조건에서는 모든 공백을 제거하는 것이 좋습니다. 이 makefile을 살펴보세요. 정상적으로 실행됩니다.

TXT="--"
ifeq ($(LON_GEMINI_BOX),1)
 TXT="works!"
 EXTRA_CFLAGS +=
 EXTRA_CFLAGS +=
else
 TXT="why is this happening"
endif
all:
    @echo $(TXT)

관련 정보