• ベストアンサー

環境変数の設定で「.」ってつけるのは・・・?!

環境変数の読み込みを行う際に、 「. /usr/db2profile」などを書く時がありますが この「.」は何を意味してるのでしょうか? 何か曖昧な質問で申し訳ありません。 色々調べてみたのですが・・ よく分かりませんでした。教えて下さい。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

「. /usr/db2profile」 .と/usr/db2profileの間にスペースがあるのですよね? (スペースの有無で意味合いが変わるので) 設定ファイルがどこにあるかを指定する時に 1. 今作業しているディレクトリ内(カレントディレクトリ、「.」で表記)を探し 2. 見つからなければ、標準のファイルを読み込む という具合になっているのかと思います。 こうしておけば、 1. Aの仕事をするときには、A1のディレクトリで作業し、A2の環境設定を使う 2. Bの仕事をするときには、B1のディレクトリで作業し、B2の設定を使う という具合に、設定の使い分けができます。

milki
質問者

お礼

ありがとうございます! すごい納得しました。 色々調べたのですが、ぜんぜん分からなくて困ってました。本当にありがとうございます。<(_ _)>

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

. の意味は man sh すれば書いてあります。sh、bash等の組み込みコマンドです。C言語だと #include と同じ意味です。 shスクリプトを書くならまずman shを全部読むことをお勧めします。一度に全部覚える必要は無いですが。 . をつけないで /usr/db2profile だけ書くと、実行権限のあるファイルの場合(chmod +x してある場合)は別プロセスでファイル内容が実行されるのでその中で設定された環境変数はプロセス終了後捨てられてしまい、呼び出した側に伝わりません。実行可能ファイルで無い場合は単にその行がエラーになります。 . /usr/db2profile だと、そこにdb2profileの内容を書いたのと同じ効果なので呼び出し側の環境変数が設定されます。ファイルを実行するわけでなく読むだけなので、db2profileに実行可能権限は必要なく、読み取り権限だけあればいいです。 もちろん環境変数の設定だけでなくて何のコマンドを書いても良いです。

milki
質問者

お礼

回答ありがとうございます。大変参考になりました。 奥が深いですね・・・本当に。 これから、もっともっとシェル勉強して 早くnotnotさんのような回答が書けるようになりたいです。本当にありがとうございました。

関連するQ&A