无法处理多行shell函数

时间:2015-08-10 07:38:28

标签: makefile

显示here后,Make会快速从shell函数argumnet中删除新行。

我试过这个makefile:

# The original lines of the command were too long
# and in-fact, that's why i split them into 2 lines.
# For simplicity, I replaced the lines with single-character words.

define cmd
rm
dir
endef


x := $(shell $(cmd))

all:
    @:

跑步,我明白了:

make: rm
dir: Command not found

是否意味着,Make传递命令" rm \ ndir" (注意中间的NL charachter!)?

因为,这肯定不是我们在上面的链接中看到的。

1 个答案:

答案 0 :(得分:0)

是的。如果您在rm之后添加了额外的空格,则会看到输出rm: cannot remove ‘\ndir’: No such file or directory。但是,如果我之前回答here,则使用

define cmd
rm dir
endef

define cmd
rm \
dir
endef

它将执行rm dir