나는 make
을 배웠으며 뭔가 알아 내려고 애 쓰고 있습니다. 나는이 일반적인 구조로 몇 가지 규칙을 가지고있다. 나는변수를 사용하여 명령을 만듭니다.
YOUR = "yourfile.txt";\
cat "myfile.txt"
/bin/sh: YOUR: command not found
make: *** [test] Error 1
대신 subst
함수를 사용하면 ... 대신
cat myfile.txt yourfile.txt
내가 다음 얻을 :
FILE = "myfile.txt"
test :
YOUR = $(subst my,your,$(FILE));\
cat $(FILE) $(YOUR)
나는 최종 결과는 명령을 실행하는 기대 makefile
에서 YOUR="yourfile"
을 수행하면 모든 것이 정상적으로 처리됩니다. 어떤 제안이나 나는 아주 근본적으로 뭔가를 놓쳤는가? 필자는 규칙 내 명령에 대한 줄을 시작하기 위해 탭이 아닌 공백을 사용하고 있다고 덧붙여 야합니다.
감사합니다. 좀 더 복잡한 예제 테스트에서는 $ (test)와 같을 것이고 $ @ valiable에 subst를 수행 한 다음 그 결과를 쉘 스크립트에 전달해야 할 것입니다. –