TurboGears virtualenvをアクティブ化するには(例として)、次のようにします。
. bin/activate
またはこれ:
source bin/activate
現在のディレクトリが「。」なのはなぜですか。コマンドとして機能しますか?
「ソース」または「。」を使用する理由 まったく?単に「ビン/アクティブ化」しないのはなぜですか?
(私はこれについて少しWeb検索を行いましたが、「。」と「source」は多くの悪いヒットを取得します。)
.
その文脈では「現在のディレクトリ」を意味するものではありません。の省略形ですsource
。.
スクリプトを(またはを使用して)調達すると、サブシェルを開始するのではなく、現在のsource
シェルのコンテキストでスクリプトが実行されます。つまり、現在のシェルの環境に変更を加えることができます。スクリプトを実行するだけではそれはできません。例:
$ cat script
VARIABLE=something
$ echo $VARIABLE
$ ./script
$ echo $VARIABLE
$ . ./script
$ echo $VARIABLE
something
「。」を使用するもう1つの理由 または、スクリプトを実行するための「ソース」は、問題のスクリプトが「#!/ bin / bash」(シバン)で始まらない場合です。これは、問題のスクリプトを解釈するプログラムをシェルに指示します。