$(shell uname -r)의 쉘은 무엇을 의미합니까?

$(shell uname -r)의 쉘은 무엇을 의미합니까?

메이크파일을 읽다가 다음 문장을 발견했습니다.

 make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules

쉘이 무엇인지 설명할 수 있는 사람이 있나요? 여기서는 명령 대체를 시도하고 있지만 uname -r만으로도 충분합니다. 쉘이라는 단어가 사용되는 이유는 무엇이며 그 의미는 무엇입니까?

나는 man 셸에서 실행을 시도했지만 예상대로 아무 것도 표시되지 않습니다. 또한 명령줄에서 shell uname -r을 실행해 보았습니다. 이것은 작동하지 않습니다. 나는 이 변수가 make에 정의되어 있다고 믿습니다.

답변1

이 줄은 Makefile아마도 에 대한 재귀 호출 내부에 있을 것입니다 make.

Makefile은 $(VAR)(또는 ${VAR})을 사용하여 지역 변수나 환경 변수를 나타냅니다.

"VAR을 실행하고 결과를 얻음"을 의미 하는 bash와의 차이점에 유의하십시오. $(VAR)따라서 Makefile에서 유사한 효과를 얻으려면 다른 구문이 사용됩니다.

$(shell uname -r)

요약하다

  • $(shell uname -r)결과로 확대될 것입니다uname -r
  • $(PWD)확장할 $PWD

바라보다GNU 메이크파일 참조

관련 정보