9

これは、virtualenv をアクティブにするには、このスクリプトを入手する必要があるという、私が受け取った応答を参照したものです。

それが何を意味するのかわかりません。virtualenv を理解しようとしている初心者です。

4

1 に答える 1

19

スクリプトのソースとは、新しいシェルでスクリプトを実行するのではなく、現在のシェルのコンテキストでスクリプトを実行することです。

例えば:

. myscript.sh

また:

source myscript.sh

(実行しているシェルによって異なります)。

独自のシェルでスクリプトを実行すると、スクリプトが環境に加えた変更は、呼び出し元のシェルではなく、そのシェルに反映されます。それを調達することで、現在のシェルの環境に影響を与えることができます。

たとえば、次のトランスクリプトを調べます。

pax> cat script.sh 
export xyzzy=plugh
echo $xyzzy

pax> export xyzzy=twisty

pax> echo $xyzzy ; script.sh ; echo $xyzzy
twisty
plugh
twisty

pax> echo $xyzzy ; . script.sh ; echo $xyzzy
twisty
plugh
plugh

スクリプト(別のシェル)を実行xyzzyすると、設定されplughますが、シェルが元のシェルに戻ると失われます。元の値が「復元」されていることがわかります (元の値は実際には変更されていないため、引用符で囲まれています。変更されたのはコピーのみです)。

ソースを取得すると、現在のシェル内でコマンドを入力したかのようになるため、変数への影響は持続します。

于 2013-08-28T06:04:53.597 に答える