タグ

ブックマーク / qiita.com/YumaInaura (1)

  • Linux — source コマンドは何をしているのか > 実は環境をリロードするためのものではない - Qiita

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

    Linux — source コマンドは何をしているのか > 実は環境をリロードするためのものではない - Qiita
    HHR
    HHR 2020/12/22
    sourceコマンドによる現在のshellへの作用
  • 1