md
을 pdf
으로 컴파일하기 위해 pandoc을 사용하는 데 필요한 최소 makefile은 다음과 같습니다. make watch
명령은 변경된 md
파일 (fswatch
사용)을 감시하고 이에 해당하는 경우 make
을 트리거합니다.변경된 파일 만 수정하는 파일 목록 fswatch
SRCS=$(wildcard *.md)
PDFS=$(SRCS:.md=.pdf)
all: $(PDFS)
%.pdf: %.md
@pandoc $< -o [email protected]
watch: $(SRCS)
@fswatch -o $^ | xargs -n1 -I{} make
현재 watch
은 매우 선택적되지 않습니다 : 하나 md
파일이 변경되는 경우에도, 그것은 모든 가능한 목표 (PDFS
의 모든)를 구축합니다. 모든 변경 파일을 md
개의 파일로 감시하지만이 코드는 에 대해 pdf
만 변경하고md
개의 파일 만 변경하는이 코드 버전을 사용하고 싶습니다. (이 경우 현재로서는 아무런 의미가 없다는 것을 알지만 다른 복잡한 사례에서는 유용합니다.)
감사합니다. 그러나 이것은 작동하지 않습니다. make [1] : *** 타겟 '1'을 만드는 규칙이 없습니다. 중지. –
정말'{}'이 필요하지는 않습니다. 음, fswatch가 어떻게 작동하는지 모르겠습니다. 분명히 뭔가가 예상대로 출력되지 않습니다 (예 : 한 줄에 하나의 파일 이름이 수정 된 파일 목록을 인쇄하는 것만은 아닙니다). xargs 명령에'-t' 또는'--verbose' 옵션을 추가하고 xargs 명령이 실제로 호출하는 것을 살펴볼 것을 권한다. 또한 쉘 프롬프트에서'fswatch' 명령을 실행하여 생성되는 출력을 살펴 봐야합니다. – MadScientist
방금 온라인 문서를 살펴 보았습니다. http://emcrisostomo.github.io/fswatch/doc/1.9.3/fswatch.html/Tutorial-Introduction-to-fswatch.html#Detecting-File-System-Changes You don '-o' 옵션을 분명히 원합니다. 단지 변경 사항 수가 인쇄됩니다. 실제로 변경된 파일을 인쇄하는 주 모드가 필요합니다. – MadScientist