2017-02-13 1 views
0

Ich habe eine Gradle Aufgabe, die ein Shell-Skript aufruft, das einige Umgebungsvariablen setzt. Diese Variablen werden von einem anderen Shell-Skript verwendet, das auch von Gradle als anderer Task aufgerufen wird. Die zweite Task kann diese Variablen jedoch nicht anzeigen. Was ist falsch und wie erreiche ich mein eigentliches Verhalten?Wie kann eine Gradle-Task die Umgebungsvariablen der Shell festlegen?

Ich arbeite in Unix/Linux. Beide Gradle-Tasks sind im Grunde genommen Exec-Tasks.

Angenommen, ich bin bereit, die Arbeit, die durch das erste Shell-Skript (Einstellung von env-Variablen) an Gradle erledigt wurde. Wie kann ich das zweite Shell-Skript dazu bringen, diese Variablen aufzunehmen?

Antwort

0

Exportieren Sie Umgebungsvariablen, die Sie freigeben möchten? Versuchen Sie, mit Export Schlüsselwort, wie im folgenden Beispiel vorgeschlagen:

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

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

Wenn Sie den Ausgang „val“ ausführen a.sh wird gedruckt auf dem Bildschirm.

Hoffe, das hilft! :)

+0

Korrekt. So etwas wie 'setenv VAR var'. Meine 'var's sind eigentlich Verzeichnispfade. Wie zum Beispiel, 'setenv ROOT_PATH./My_root_path' –

+0

Ich verstehe Ihre Antwort nicht ganz. Ich habe eine Gradle-Aufgabe, die ein Shell-Skript ausführt, das Umgebungsvariablen setzt. Ich möchte diese Variablen in einem anderen Shell-Skript verwenden, das von einer anderen Gradle-Task ausgeführt wird. –

+0

In meinem Beispiel definiere und exportiere ich die Umgebungsvariable VAR im Shell-Skript a.sh und verwende die A-Variable im Shell-Skript b.sh. Wenn Sie in meinem Beispiel kein export-Schlüsselwort verwenden, funktioniert es nicht. Prüfen Sie. – aicastell

Verwandte Themen