출력을 stdout에 인쇄 해야하는 과제에 대한 프로그램을 작성했습니다. 할당 스펙은 호출 될 때 make run > outputFile
프로그램을 실행하고 스펙에 지정된 것과 동일한 SHA1 지문을 갖는 파일에 출력을 기록 하는 Makefile 작성을 요구합니다 .
내 문제는 내 makefile입니다.
...
run:
java myprogram
또한 내 프로그램 (예 : java myprogram)을 실행하는 명령을 출력 파일에 인쇄하여 내 파일 에이 추가 줄이 포함되어 지문이 잘못되었습니다.
명령 호출에 명령 호출을 반영하지 않고 명령을 실행할 수있는 방법이 있습니까?
답변
@
gmake에게 실행중인 명령을 인쇄하지 않도록 지시하려면 명령의 시작 부분에 추가하십시오 . 이처럼 :
run:
@java myprogram
Oli가 제안했듯이 이것은 Bash가 아닌 Make의 기능입니다.
반면에 Bash는 명시 적으로 명령하지 않는 한 (예 : -x
옵션을 사용하여) 명령을 실행하지 않습니다 .
답변
더 간단하고 사용 make -s
(자동 모드)!
답변
당신은 또한 사용할 수 있습니다 .SILENT
.SILENT: run
hi:
echo "Hola!"
run:
java myprogram
이 경우 make hi
명령이 출력되지만 make run
출력되지는 않습니다.
답변
명령의 앞에 오는 효과 @
는 줄에 후행 백 슬래시를 사용하여 명령을 확장하여 섹션으로 확장 할 수 있습니다. .PHONY
출력을 억제하기 위한 명령이 필요한 경우 다음 과 같이 섹션을 시작할 수 있습니다.
@printf "..."
답변
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)