Linux やMac でsudo を付与して実行する際、環境変数を引き継ぐ方法を記載します。
リンク
sudo で実行すると設定した環境変数を読み込めない
以下のような、環境変数$ENV_TEST
を出力するtest.sh
を作成した。
echo $ENV_TEST
sudo を付けずに実行した場合、事前にexport
で指定した環境変数を出力してくれる。
$ export ENV_TEST='Hello, World.'
$ ./test.sh
Hello, World
一方、sudo を付与して実行した場合、何も出力されない。(正確にはecho
の改行のみが出力される。)
$ sudo ./test.sh
sudo に-E
オプションを付与することで環境変数の引き継ぎが可能
環境変数を引き継ぎたい場合、sudo に-E
オプションを付与することで引き継ぎが可能となる。
実際に先程と同様のスクリプトで環境変数が出力されることを確認。
$ sudo -E ./test.sh
Hello, World.
環境変数まわりについては下記サイト様が詳しいので、参照してほしい。