여기에 실험용 Makefile이 있습니다.
.SECONDEXPANSION:
~/hello.txt: $(shell echo '$$(@D)/')$(shell echo '$$(@F)' | sed -e 's/hello/bye/')
echo "$^"
어떻게 든 나오지 명령이 작동하고 있는지 확인하지 않는 것은 대한 순환 종속성에게 불평
gmake: Circular /users/sim/hello.txt <- /users/me/hello.txt dependency dropped.
gmake: *** No rule to make target `echo', needed by `/users/me/hello.txt'. Stop.
내 예상되는 동작은 GNU가 ~/bye.txt 대신 찾고 확인했다. 내가 도대체 뭘 잘못하고있는 겁니까?
이 작은 예제에서는 "bye.txt"를 명시 적으로 지정할 수 있지만 여전히 sed 명령이 적용되지 않는 이유는 알고 싶습니다. 도와 줘서 고마워.
-1 오해의 소지가 제목. 허용 된 솔루션은 파이프 또는 sed와는 아무런 관련이 없습니다. – danorton