qshinoの日記

Powershell関係と徒然なこと

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 指定して作成したスクリプトを展開する場合は、. を使う。