概要
表題通りです。 シェルスクリプト内でexportした環境変数は実行後でも使えるのか。試してみる。
サンプルコード
こいつを試してみる。
cat hoge.sh #!/bin/bash export HOGEHOGE="hogehoge"
ここで、hoge.shと実行すると、環境変数HOGEHOGEはどうなるのだろうか?
$ chmod 755 hoge.sh $ ./hoge.sh $ echo $HOGEHOGE # どうなる??
結果など。
こうなります。
$ echo $HOGEHOGE # 何も表示されない。
ちなみに、sourceだと、環境変数が受け継がれるっぽいです。
$ source hoge.sh $ echo $HOGEHOGE hogehoge
このあたりの、普通に実行するのとsourceでどう違うのかあまり良くわかっていない。。
追記
@shigemk2 シェルスクリプトを実行する際には、実行するための新たな環境ができるので、環境変数はプロンプトの環境に引き継がれません(スクリプトが終了すればその環境もなくなりますから)。sourceは、現在の環境にスクリプト内容を読み込んでいるのですね。
— あおいラファエロ17.2 (@aoi1049) 2015, 11月 15