Gnu-Make
$(shell uname -r)中的shell是什麼意思
我正在閱讀一個生成文件,在那裡我找到了這個語句
make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules
誰能在這裡解釋一下什麼是shell。這裡正在嘗試命令替換,但只有 uname -r 就足夠了。為什麼要使用 shell 詞,它的含義是什麼?
我已經嘗試過在 shell 上做人,但正如我所料,它什麼也沒顯示。我還嘗試在命令行上執行 shell uname -r。這沒用。我相信這個變數是在make中定義的。
我敢打賭,這條線在一個
Makefile
,很可能是對make
.Makefile 使用
$(VAR)
(或${VAR}
)表示局部變數或環境變數。注意與 bash 的區別,其中的
$(VAR)
意思是“執行 VAR 並獲取結果”,因此在 Makefile 中使用另一種語法以獲得類似的效果$(shell uname -r)
總結一下
$(shell uname -r)
將擴大到結果uname -r
$(PWD)
將擴大到$PWD
的價值