2016-02-12 72 views
0

我有一個非常基本的makefile,我想使用當前項目/文件夾的名稱,但是我一直有問題。我試過了:makefile中的嵌套命令替換

example: 
    docker build -t `basename `pwd`` . 
    docker build -t `basename $(pwd)` # From what I know $() relates to a variable in makefiles. 

任何想法?

回答

0

一種方法:

docker build -t `basename $(PWD)` 

這,就像許多環境變量,是全部大寫。

正如有人指出,在評論中,這樣的:

docker build -t $$(basename $$(pwd)) 

也會起作用。這更類似於您的第一次嘗試,其中使用pwd命令而不是PWD環境變量。

而且,這也將工作:

docker build -t `basename \`pwd\`` 
+1

哇...我以前試過,但根據make輸出,顯示爲: ''' 搬運工建立-t'基名的/ home/AOSMITH /開發/項目'。 ''' 事實證明這實際上有效,我只是沒有注意謝謝! –

+0

儘管如此,它並沒有回答標題中的(明顯的)問題。如果你真的想嵌套命令替換,你需要加倍美元符號才能將它們傳遞給shell; '$$(basename $$(pwd))' – tripleee