9

这是参考我收到的回复说我需要获取此脚本才能激活 virtualenv。

不知道这意味着什么,这里的初学者试图弄清楚 virtualenv。

4

1 回答 1

19

获取脚本是在当前 shell 的上下文中运行它,而不是在新的 shell 中运行它。

例如:

. myscript.sh

或者:

source myscript.sh

(取决于您正在运行的外壳)。

如果您在自己的 shell 中运行脚本,它对环境所做的任何更改都在shell 中,而不是您从中调用它的那个。通过采购它,您可以影响当前 shell 的环境。

例如,检查以下成绩单:

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

当您运行脚本(不同的 shell)时,它会设置xyzzy为,plugh但是当 shell 退出到原始 shell 时会丢失。您会发现原始值已“恢复”(用引号括起来,因为原始值实际上从未更改,只是它的副本)。

当您获取它时,就像您在当前 shell 中键入命令一样,因此对变量的影响是持久的。

于 2013-08-28T06:04:53.597 回答