这可能是一个非常基本的问题,但我需要在函数中调用函数,但我无法弄清楚:
chmod-prod:
chown git:git-R ./
composer-dev:
[who do I how chmod-prod: within here]
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
请注意,chmod-prod和composer-dev在 make 术语中被称为目标。
使用目标
如果 need 的结果chmod-prod发生在“配方”的其余部分之前,那么composer-devmake 中最自然的方式是将其添加为依赖项。
composer-dev: chmod-prod
[the rest of composer-dev recipe]
Run Code Online (Sandbox Code Playgroud)
鉴于这两个目标不会导致创建具有其名称的文件,最好将它们声明为.PHONY:
.PHONY: chmod-prod
.PHONY: composer-dev
Run Code Online (Sandbox Code Playgroud)
这可以确保如果有人添加同名文件,目标不会受到影响。
使用变量
另一种方法是将命令存储在变量中:
chmod_prod_cmd:=chown git:git-R ./
Run Code Online (Sandbox Code Playgroud)
然后可以在两个目标的配方中使用它:
composer-dev:
$(chmod_prod_cmd)
composer-dev:
$(chmod_prod_cmd)
[presumably some more recipe]
Run Code Online (Sandbox Code Playgroud)
罐装多行配方
如果您想要重用的配方位涉及多行,那么您将需要使用define指令而不是普通的变量赋值:
define chmod_prod_cmd
echo Doing something
chown git:git-R ./
endef
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |