makeターゲットを書き込もうとしていますが、envを設定しています。シェルコマンドで得られた変数。Makefile:コマンドによって出力される環境変数を設定します。
gcloud beta emulators datastore env-init端末の出力では、いくつかのexports文が好きです(設定されていませんが、ちょうどエコー/プリント)。
export DATASTORE_EMULATOR_HOST=localhost:8432
export DATASTORE_PROJECT_ID=my-project-id
通常、変数を設定するには、これらの行をコピーして端末に貼り付ける必要があります。
これらの印刷されたエクスポート文を実行して、シェル上で設定できるようにすることは可能ですか?私は好きだったが、うまくいった。
target:
@export JAVA_HOME=$(JAVA_HOME); \
$(shell gcloud beta emulators datastore env-init); \
go run src/main.go
私が好きならば、それはスクリプトの出力を出力し、JAVA_HOME
と同様に
target:
export JAVA_HOME=$(JAVA_HOME); \
gcloud beta emulators datastore env-init \
go run src/main.go
、どのようにもI(エクスポートコマンドの4行をしている)
gcloud beta emulators datastore env-init
コマンドのソース出力することができますので、彼らは、環境内に設定されています。
はので、私は、実際には、
target:
export JAVA_HOME=$(JAVA_HOME); \
export DATASTORE_EMULATOR_HOST=localhost:8432 \
export DATASTORE_PROJECT_ID=my-project-id \
go run src/main.go
おかげのような何かをしたいです。 bsr
だから、私は好きだよ。 '' 'target: @export JAVA_HOME = $(JAVA_HOME); \ gcloudベータエミュレータdatastore env-init \ src/main.go'''を実行しますが、envを実行してください。 'gcloud'コマンドで表示される変数は設定されません。 – bsr
申し訳ありませんが、私は間違った言葉かもしれません。明確にするために質問を少し編集しました。トレースするのではなく、コマンド(gcloud beta ...)で変数を設定(エクスポート)します。したがって、コマンドの出力は2 export statemensです(これはコンソールに出力されますが、設定されません)。これらの変数を設定し、次の行(同じシェル)でコマンドを開始したいと思います。私はmakefileレベルで設定しても構いませんが、env変数はターゲットを実行する直前にのみ使用できます。ターゲットを実行する直前にコマンドを評価することは可能ですか?助けてくれてありがとう。 – bsr
ありがとう。私は最初にあなたの編集を見ることに失敗しました:-)それは素晴らしい作品です。もう一度あなたの時間に感謝します。 – bsr