如何使用多行变量的秘诀是什么?
文件名:多行变量
define foo =
echo welcome
endef
export foo
all:
echo $(foo)
我得到下面的输出。 但我希望“欢迎”打印。
$ make -f multiple-line-variable
echo
如何使用多行变量的秘诀是什么?
文件名:多行变量
define foo =
echo welcome
endef
export foo
all:
echo $(foo)
我得到下面的输出。 但我希望“欢迎”打印。
$ make -f multiple-line-variable
echo
SunEric的答案没有正确地解释发生了什么事。 添加,还是不行, @
具有绝对的零,与你没有看到“欢迎”的原因打印。
如预期你原来的例子不工作的原因是因为你正在阅读的GNU使手册GNU的最新版本做(这是目前GNU让4.0),可能使用的在线手册,但您使用的是老得多GNU的版本做。 这不是一个好主意,因为在GNU版本不存在手册中讨论的功能让你使用。
在这种情况下,变量定义的风格,增加了名称后赋值运算符:
define foo =
...
不可用GNU使3.82之前。 在此之前化妆的版本,此语法定义了一个名为,从字面上变量, foo =
。 所以,印刷$(foo)
,因为变量将不会显示任何foo
没有被定义。
GNU化妆为用户提供了手动作为分发的一部分,你应该经常阅读附带GNU版本让你使用,而不是其他版本的手册版本。
此外,您不需要export
的foo
变量中任何一种方法,因为你使用的使你的食谱语法,这样的外壳不会看到的任何引用foo
变量。
尝试这个,
define foo
welcome
endef
export foo
all:
@echo $(foo) // Change is here