Makefile의 gmake 쉘 및 PATH

Makefile의 gmake 쉘 및 PATH

누구든지 그 이유를 다음과 같이 설명할 수 있습니까?

export PATH:=$(PATH):~/bin2
B:=$(shell PATH=$(PATH) testXq.sh)
$(warning $(B))

정상적으로 작동하고 ~/bin2/testXq.sh의 실행 결과를 표시하며 동시에 다음 작업을 수행합니다.

export PATH:=$(PATH):~/bin2
B:=$(shell testXq.sh)
$(warning $(B))

반환 오류:

make: testXq.sh: Command not found

나는 gmake v4.0을 사용하고 있습니다

답변1

답변2

물결표 문자를 확장하는 것은 거의 불가능하므로 gmake물결표는 PATH에 남아 있습니다.

그러나 PATH 문자열이 다시 쉘에 전달되면 쉘은 물결표를 확장합니다.

물결표 문자를 확장하지 않는 것 외에도 gmake또 다른 문제가 있습니다.

  • gmakeexport이 키워드는 규칙에서 실행되는 "일반" 쉘 명령(TAB 삽입 텍스트 이후의 쉘 명령)에 대해서만 구현되는 것으로 보입니다.

gmake비직교 구현으로 인해 문제가 발생한 것은 이번이 처음이 아닙니다 . 예를 들어 Gmake는 OpenVMS에서 실행된다고 주장하지만 이 $(shell cmd)방법은 OpenVMS에서는 작동하지 않습니다.

관련 정보