ごく基本的なことだが、今までよく考えずに使っていた。 source コマンドというと、「.bash_profile を変更した後に使うもの」ぐらいのイメージしかなかった。 謎 「なぜひと手間かけさせるのか」「プロフィールファイルを変更した時に、環境設定も自動更新してくれたら良いのに」と思っていた。 だが source コマンドは実は、環境をリロードするためのものではない。 ファイルに書かれた内容を 忠実にコマンドとして実行していくものなのだ。 $ source と $ bash の違い では $ bash でファイルを実行するのとは何が違うのか。 $ bash [file] はシェルスクリプト内の 「裏側=閉じられた環境」 でコマンドを実行する。 $ source [file] は 「表側=開いた環境」 で、コマンドを実行する。 動作が変わる例 たとえば「変数に代入するだけ」の単純なスクリ