bin / activate脚本的“来源”是什么意思?

时间:2013-08-28 06:02:15

标签: bash shell

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

不知道这意味着什么,初学者在这里试图找出virtualenv。

1 个答案:

答案 0 :(得分:12)

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

例如:

. myscript.sh

或:

source myscript.sh

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

如果您在自己的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时会丢失。您会发现原始值已经“恢复”(在引号中,因为原始值从未实际更改,只有它的副本)。

当你 source 它时,就像你在当前shell中键入命令一样,这样对变量的影响是持久的。