【发布时间】:2018-05-11 13:49:29
【问题描述】:
我在我的Makefile 规则中有哪个设置环境:
.ONESHELL:
set_db_env:
export DB_USER=XXX
export DB_PASS=YYY
我可以重复使用set_db_env 目标吗?
another_rule: set_db_env
echo ${DB_USER}
我也找到了.EXPORT_ALL_VARIABLES,但是不明白怎么用。
UPD
我发现这是可行的:
$(shell ${APP} db_env > ${CONF_DIR}/db_env.conf)
include ${CONF_DIR}/db_env.conf
但我认为这不是好方法
【问题讨论】:
-
您的
set_db_env规则/食谱真的有效吗?这应该在单独的 shell 中运行每个export语句,在这种情况下,我预计有关:=的错误是无效语法。 -
@G.M.:我已经更新了问题。但无论如何它会导出到一个父 shell,不是吗?
-
看看this solution。这应该会给你带来一些启示。
-
@perror:是的,我以前见过。在每条规则之前写 N
export VAR行太冗长了。我只想用一个命令重用它们:set_db_env -
@EugenKonkov:我不知道
.EXPORT_ALL_VARIABLES,但这似乎就是你要找的东西! Here is an example of how to use it。基本上,您只需在 Makefile 中将其声明为空目标。