2014-09-30 43 views
1

我正在使用make和我有一个make文件帮助我使用rpm-builder构建一个rpm。您必须使用以下布局制作rpm.properties文件。如何在没有使用makefile进行扩展的情况下回显变量

rpm_name=my_app 
    rpm_version=1.0 
    rpm_release=$(date +%s) 
    rpm_summary=${rpm_name} 
    rpm_install_dir=/projects/my_app/webapps 
    files=src/my_application.properties,log4j.xml 

这是我使用这样做

rpm: 
    @echo rpm_name=foo > rpm.properties 
    @echo rpm_version=1.0 >> rpm.properties 
    @echo rpm_release=$(date +%s) >> rpm.properties 
    @echo rpm_summary=foo >> rpm.properties 
    @echo rpm_install_dir=~/foo_install >> rpm.properties 
    @echo file=foo.class >> rpm.properties 
    @echo rpm_install_post_script_file=foo.sh >> rpm.properties 
    @echo rpm_username=root >> rpm.properties 
    @echo rpm_groupname=root >> rpm.properties 

make文件工作正常期待与线生成文件的一部分,

@echo rpm_release=$(date +%s) >> rpm.properties

不输出到rpm.properties文件。该rpm.properties输出如下

rpm_name=foo 
rpm_version=1.0 
rpm_release= 
rpm_summary=foo 
rpm_install_dir=~/foo_install 
file=foo.class 
rpm_install_post_script_file=foo.sh 
rpm_username=root 
rpm_groupname=root 

虽然我要找

rpm_name=foo 
rpm_version=1.0 
rpm_release=$(date +%s) 
rpm_summary=foo 
rpm_install_dir=~/foo_install 
file=foo.class 
rpm_install_post_script_file=foo.sh 
rpm_username=root 
rpm_groupname=root 

有谁知道我怎么会由make文件解释为像$(date +%s)一个变量是文本的输出线AA纯文本不扩展?

回答

2

您需要从make中跳出$。然后您还需要从shell中跳出$

用途:

@echo rpm_release='$$(date +%s)' >> rpm.properties 

您也可以做到这一切与一个echo/printf和单一的重定向,而不是整数倍,如果你想。

+0

工作表示感谢,我知道我不得不逃离字符,但不太熟悉这样做。 – jgr208 2014-09-30 14:55:29

相关问题