Eval不能使用linux makefile

时间:2014-02-14 06:51:48

标签: linux perl shell makefile centos

我正在尝试自动生成symfony的php文件。

我正在从文本文件中读取数据,然后尝试将其插入到命令

这是我在make文件中的代码

MYFILE = document.txt
READ_ENTITY=eval `perl -plne '$$\ = " "' $(MYFILE)`

FIELDS = $(call READ_ENTITY)
mytest:
    commands --fields="$(FIELDS)" 

基本上document.txt是单独行中的字段配置。首先,我使用perl将所有行与空间联接起来,然后我希望在变量fields中得到perl的输出。我想在命令中插入

2 个答案:

答案 0 :(得分:1)

你想要的是$(shell...)

READ_ENTITY:=$(shell perl -plne '$$\ = " "' $(MYFILE))

我建议使用:=作业,以便只进行一次评估。否则,每次评估READ_ENTITY时都会生成一个shell。 (请参阅documentation了解相关信息。)

反引号在make的语法中并不特殊。以下

FOO=`ls`

只会将字符串"`ls`"分配给变量FOO

我不清楚你期望$(call READ_ENTITY)位做什么。

答案 1 :(得分:0)

我认为你在这里倾向于错位。试试这个:

READ_ENTITY=`eval perl -plne '$$\ = " "' $(MYFILE)`