call function

1 call递归扩展变量

本质上仍然是变量扩展,等价于$(),只不过扩展的时候带了参数,$(call xxx)返回的是xxx扩展之后的值。参数依次赋值给$(1),$(2)......,但是参数要在赋值之前完成扩展。

2 call define定义的多行变量

本质上仍然是变量扩展,参数依次赋值给$(1),$(2)......,但是在赋值之前也要扩展。完成扩展之后替换出现call的地方,这样就完成了对call函数的扩展。

注意,call是不会对define定义的多行变量本身(除了$(1),$(2))进行扩展的,也就是说,它只是进行参数的替换。

3 call builtin函数

 直接执行builtin,不过参数要先扩展然后再传给builtin。

原文地址:https://www.cnblogs.com/hustdc/p/7474470.html