如何让Gradle任务集shell设置环境变量?

如何让Gradle任务集shell设置环境变量?,gradle,environment-variables,Gradle,Environment Variables,我有一个Gradle任务,它调用一个shell脚本来设置一些环境变量。这些变量由另一个shell脚本使用,Gradle也将其作为另一个任务调用。但是,第二个任务无法查看这些变量。什么是错误的?我如何真正实现我所要求的行为 我在Unix/Linux中工作。这两个Gradle任务基本上都是Exec类型的任务 假设,我已经准备好将第一个shell脚本(设置env变量)完成的工作外包给Gradle。如何使第二个shell脚本获取这些变量?是否导出要共享的环境变量?尝试使用export关键字,如下例所示:

我有一个Gradle任务,它调用一个shell脚本来设置一些环境变量。这些变量由另一个shell脚本使用,Gradle也将其作为另一个任务调用。但是,第二个任务无法查看这些变量。什么是错误的?我如何真正实现我所要求的行为

我在Unix/Linux中工作。这两个Gradle任务基本上都是Exec类型的任务


假设,我已经准备好将第一个shell脚本(设置env变量)完成的工作外包给Gradle。如何使第二个shell脚本获取这些变量?

是否导出要共享的环境变量?尝试使用export关键字,如下例所示:

$ cat a.sh
#! /bin/sh
export VAR=val
/path/to/b.sh

$ cat b.sh
#! /bin/sh
echo $VAR
当您执行a.sh时,输出“val”将打印在屏幕上


希望这有帮助!:)

对。类似于
setenv VAR
。我的
var
实际上是目录路径。例如,
setenv ROOT\u PATH./my\u ROOT\u PATH
我不太明白你的答案。我有一个Gradle任务,它运行一个shell脚本来设置环境变量。我想在另一个Gradle任务运行的另一个shell脚本中使用这些变量在我的示例中,我在a.sh shell脚本中定义并导出环境变量VAR,并在b.sh shell脚本中使用该变量。如果在我的示例中不使用export关键字,它将不起作用。检查一下。