2
我想了解makefile,主要是爲了瞭解我正在使用的makefile,但是我正在通過可能是簡單的東西引發。我的Makefile中混淆了我的部分是這樣的:與Makefile的混淆
SUBS = dir1 dir2 dir3
depend clean:
@-X=`pwd`;\
for i in $(SUBS);\
cd $$X/$$i;\
done
什麼是「@ -X = pwd
做我推測,它在某種程度上賦予本目錄X的值,但我不知道怎麼樣?閱讀「@ - 」語法
此外,爲什麼X &我需要前置'$$'而不是'$'?我已通過實驗驗證了兩個$都是必需的,但會認爲只需要一個人來替換他們的值
OK - 所以如果我理解正確,「X ='pwd'」會將當前工作目錄的值賦給X並打印出來。 「@ X ='pwd'」做同樣的事情,但是沒有給我一個標準輸出的評論。 「@ -X ='pwd'」有點多餘,因爲我沒有看到'pwd'導致許多錯誤。但爲什麼「X」與「SUBS」不同,後者需要訪問一個$? 「SUBS」是保留字嗎? – user1245262 2012-07-07 21:32:55
堅持......我想我明白了。 SUBS只能通過make來讀取,所以它只需要一個$,但是X正在被shell讀取,所以它需要2 $,一個用於make和一個用於外殼..... – user1245262 2012-07-07 21:41:38
打印isn不太正確,它不會打印pwd,它會打印傳遞給shell的整個命令行。關於變量:是的,shell中有「make」和變量。如果你看看這些行,你會發現它們都與\連接,所以它們實際上都在同一個shell中,因爲它只是一個大的shell命令行。這就是爲什麼它也可以使用shell變量。 – 2012-07-07 21:45:01