Makefile中使用shell實例

目標:在Makefile中解壓1個目錄中的tar文件到另1目錄,要求在目標目錄中建立以tar文件名創建目錄存在解壓後的文件


經過摸索,參考

http://www.cnblogs.com/xwdreamer/p/3823463.html

http://blog.csdn.net/force_eagle/article/details/2629030

http://blog.chinaunix.net/uid-20672257-id-3345593.htmlMakefile與shell腳本區別

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1370926

得出有效執行語句

FILES := $(shell find $(XXX_CPK_DIR) -type f)

all: extract

extract:
	echo extract...
	
	for file in ${FILES} ;\
	do \
	echo $$file ;\
		dir=$${file%.*} ;\
		echo $$dir ;\
		dir=$${dir##*/} ;\
		echo $$dir ;\
		dir=$(XXX_INSTALL_DIR)/$$dir ;\
		echo $$dir ;\
		mkdir -p $$dir ;\
		tar -xzf $$file -C $$dir ;\
	done

dir=$${file%.*}

最早爲

dir = $${$$file%.*} 

dir=$${$$file%.*} 

$符號會在解析過程中,直接解析其後的字符串,$$file會被當作$file執行

最終的$${file%.*} ,會解釋爲dir=${file%.*} 執行,即把file字符串進行截取,並賦值給dir。

切記,=前後,不能有空格。不然會報dir: =: No such file or directory。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章