2015-12-21 31 views
0

它应该很简单。我有一个web项目生成文件(不要问我为什么:):用于web项目的Makefile:如何正确使用占位符?

solution = solution_name 
common = app css js/*.js js/app js/locale #... 
private = app css image js template #... 

all: 
    @echo Solution '${solution}' 
    @tar cvfz ${solution}.tgz --exclude=.svn \ 
    $(addprefix ../../, ${common}) \ 
    ${private} 

我的目标是有化妆可变%VERSION%里面,我可以替代app.js文件,包括到归档,而不是改变原始文件(将来使用这个变量)。我现在发现的全部是

sed -i -r "s/%VERSION%/`svnversion`/" js/app.js 

此代码完成一半的工作。该行在处理后被修改,并且第二次不能使用set。我怎样才能实现我的目标?谢谢。

回答

0

我用以下技巧对于这样的问题:

sed -i 's# *=.*//.*VERSION.*# = "`get_version`" // comment with word VERSION inside it#' myfile.ext 

和myfile.ext我有:

some_variable = '1.2.3.45-r67' // comment with word VERSION inside it 

所以我每次运行时SED,它得到实际的版本(日期,时间,分支,不管),这可以重复,因为我经常需要

+0

好的解决方案,谢谢! – Georgy