目標:在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。