在bash脚本中,我通过shellcheck了解到,通过"${foobar}"
访问var是最佳实践。在Makefile中,有时会使用${foobarr}
,有时会看到$(foobar)
。两者之间有什么区别,因为我在官方文档中看到两者混在一起,所以Makefile中的最佳做法是什么?
答案 0 :(得分:2)
两个变量都被接受,据我所知,所有功能都可以使用,甚至GNU Make中的函数调用。
关于最佳做法,我不记得曾经以某种方式看到过建议。 $(...)
似乎更常见,但我不记得与${...}
有关的任何问题。
请注意,如果您想将$
传递给shell进行解释,可能是因为您想扩展Makefile中不可用的shell变量,则必须将它加倍:$$
。
答案 1 :(得分:1)
它们之间绝对没有区别。它们在所有方面都受到相同对待。使用您喜欢的任何一种。要考虑的一些事情:
$(...)
可能会有所帮助,作为视觉提醒您正在使用make变量。$(shell ...)
函数中编写复杂的脚本时,有时使用${shell ...}
可以避免与特殊的shell功能(例如旧式case
语句)发生冲突。