linux shell sourceと . の違い
source . とは
linux shell コマンドの . は、カレントシェルでファイルを実行し、環境変数等の設定に使われる。
sourceコマンドも同じ機能だが、bash, zsh, tcsh 等で実装された。
debian/ashではsourceは実装されていない。
但し、centos の shはbashにリンクされており、sourceが使える。
対応一覧
sh | . | source |
---|---|---|
old sh ash dash | o | x |
bash zsh tcsh | o | o |
. の方が汎用的であり、スクリプトでは . , コマンドラインでは打ち間違い対策でsourceとするなどがよいかも知れない。
使い分け
ローカルに使用する場合や、bssh等をsourceを実装したshellを指定してスクリプトを作成する場合は、sourceを使っても問題ないが、sh 指定して作成したスクリプトを展開する場合は、. を使う。