アゲブログ

プログラマーです。

コマンド実行時に環境変数を指定する

以下のようにコマンド実行時に環境変数を指定することができるようです。

$ <変数名>=<> <コマンド>

試してみる

コマンドに見立てて下記のようなスクリプトを使用します。TEST_VARIABLE1TEST_VARIABLE2という環境変数を表示する単純なスクリプトです。

puts_test_variables

#!/usr/bin/env ruby
puts ENV['TEST_VARIABLE1']
puts ENV['TEST_VARIABLE2']

このファイルに実行権限を付与して...

$ chmod u+x puts_test_variables

環境変数TEST_VARIABLE1TEST_VARIABLE2を設定してから実行するとそれぞれの値が表示されます。

$ export TEST_VARIABLE1=Hello
$ export TEST_VARIABLE2=World
$ ./puts_test_variable
Hello
World

実行時に環境変数を指定してスクリプトを実行してみます。

$ TEST_VARIABLE2=Ruby ./puts_test_variables
Hello
Ruby

できた!もう一度、環境変数を指定しないで実行してみると...

$ ./puts_test_variables
Hello
World

特定のサブプロセスでのみ環境変数が有効であることが確認できました。ちなみに、以下のように複数の環境変数を一度に設定することもできるようです。

$ TEST_VARIABLE1=Gatsby TEST_VARIABLE2=Hugo ./puts_test_variables
Gatsby
Hugo

感想

xcodebuildコマンドでiOSアプリをビルドする際にDEVELOPER_DIRという環境変数を使用することでXcodeのバージョンを指定できるので、実行時にXcodeのバージョンを指定したい場合に使えそう!