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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值