2017-11-26 13 views
1

私のScalaアプリケーションから、いくつかの変数を設定するスクリプト(例:setenv.sh)を実行します。私はその後、私のアプリケーションでこれらの変数を読んで、さらに処理したいと思っています。ここに私のサンプルのsetenv.shファイルがあります。Scala:シェルスクリプトで定義された変数を読み込みます。

#!/bin/bash 

TEST=0000 

私は以下を持っていますが、動作しません。私は多くの選択肢を試しましたが、失敗しました。

Seq("bash", "-c", "source setenv.sh && env").!! 

上記のコマンドは、私に古い環境変数を与え、私はTESTを見ることができません。

私の目標は、すべての変数をsetenv.shファイルにロードして、アプリケーションで使用することです。

答えて

1

簡単には動作しません。 新しいシェルプロセスを開いていることに注意してください。そのプロセスは設定を見て終了する。

明示的にその値をエクスポートする場合は、

また、値をstdoutに出力し、その出力をScalaで解析することもできます。

+0

私は現在、setenv.shスクリプトを変更せずに解決策を探しています。 setenv.shを実行して、親プロセスで新しいプロセスの環境変数を何とか取得できますか? –

+0

再度:現在あなたのスクリプトは、親プロセスに何らかの影響を与える何かをしていません。スクリプトを変更しない限り、あなたは壊れています。 – GhostCat

関連する問題