2017-02-13 25 views
0

私はいくつかの環境変数を設定するシェルスクリプトを呼び出すGradleタスクを持っています。これらの変数はGradleによって別のタスクとして呼び出される別のシェルスクリプトによって使用されます。ただし、2番目のタスクではこれらの変数を表示できません。何が間違っていて、実際に私の必要な行動をどのように達成するのですか?Gradleタスクでシェルの環境変数を設定するにはどうすればよいですか?

私はUnix/Linuxで働いています。どちらのGradleタスクも基本的にExecタイプのタスクです。

私は、最初のシェルスクリプト(env変数を設定)によって行われた作業をGradleにソースアウトする準備ができています。 2番目のシェルスクリプトでこれらの変数を選択するにはどうすればよいですか?

答えて

0

共有したい環境変数をエクスポートしていますか?次の例で提案されているように、輸出のキーワードで試してみてください。

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

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

あなたは出力「ヴァル」をa.sh実行

が画面に印刷されています。

希望すると便利です。 :)

+0

正しい。 'setenv VAR var'のようなものです。私の 'var's'は実際にはディレクトリパスです。例えば ​​'setenv ROOT_PATH。/ my_root_path'のように –

+0

私はあなたの答えをよく理解していません。私は環境変数を設定するシェルスクリプトを実行するGradleタスクを持っています。これらの変数を別のGradleタスクによって実行される別のシェルスクリプトで使用したい –

+0

私の例では、environ変数VARをa.shシェルスクリプトで定義してエクスポートし、その変数をb.shシェルスクリプトで使用しています。私の例でexportキーワードを使用しないと、動作しません。それを確認してください。 – aicastell

関連する問題