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

问题描述:

我有一个Gradle任务调用一个shell脚本来设置一些环境变量。这些变量由另一个shell脚本使用,该脚本也被Gradle作为另一个任务调用。但是,第二项任务不能查看这些变量。什么是错的,我如何才能真正实现我所需的行为?如何让Gradle任务设置shell设置环境变量?

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

假设我准备将第一个shell脚本(设置env变量)完成的工作外包给Gradle。我怎样才能让第二个shell脚本拿起这些变量?

你正在输出你想分享的环境变量吗?按照以下示例中的建议尝试使用导出关键字:

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

$ cat b.sh 
#! /bin/sh 
echo $VAR 

执行a.sh时,输出“val”会打印在屏幕上。

希望这会有所帮助! :)

+0

正确。像'setenv VAR var'一样。我的'var's'实际上是目录路径。就像例如,'setenv ROOT_PATH。/ my_root_path' –

+0

我不太明白你的答案。我有一个Gradle任务,它运行一个设置环境变量的shell脚本。我想在另一个由另一个Gradle任务运行的shell脚本中使用这些变量 –

+0

在我的示例中,我定义并导出a.sh shell脚本中的environ变量VAR,并在b.sh shell脚本中使用该变量。如果您在我的示例中未使用export关键字,则不起作用。核实。 – aicastell