代码之家  ›  专栏  ›  技术社区  ›  The Fool

makefile中的环境设置

  •  0
  • The Fool  · 技术社区  · 3 年前

    我正在尝试导出make中的env变量,以便在下一行中使用。我按照这里的建议做 Setting environment variables in a makefile

    eks-apps:
        export KUBECONFIG=$(CURDIR)/terraform/kubernetes/cluster/$(shell ls terraform/kubernetes/cluster/ | grep kubeconfig)
        kubectl get all
    

    但是它没有在kubectl命令中使用kubeconfig。我错过了什么?

    1 回复  |  直到 3 年前
        1
  •  1
  •   Klaus    3 年前

    配方中的每一行都将在新的shell中执行。因此,您必须对所有命令使用单个shell:

    eks-apps:
        ( \
        export KUBECONFIG=$(CURDIR)/terraform/kubernetes/cluster/$(shell ls terraform/kubernetes/cluster/ | grep kubeconfig); \
        kubectl get all \
        )
    

    根据您链接到的答案:

    请注意:这意味着设置shell变量和调用shell命令(例如为每个进程设置本地上下文的cd)不会影响配方中的以下行。2如果要使用cd影响下一条语句,请将这两条语句放在一行中