要激活TurboGears virtualenv(仅作为示例),请执行以下操作:
. bin/activate
或者这个:
source bin/activate
为什么当前目录“。”作为一个命令工作?
为什么要使用“source”或“。”什么?为什么不简单地“bin / activate”?
(我对此进行了一些网络搜索,但“。”和“来源”获得了大量不良点击。)
答案 0 :(得分:6)
.
并不意味着该上下文中的“当前目录”。它只是source
的缩写。获取脚本(使用.
或source
)在当前 shell的上下文中运行脚本,而不是启动子shell。这意味着它可以对您当前的shell环境进行修改。简单地运行脚本不能这样做。例如:
$ cat script
VARIABLE=something
$ echo $VARIABLE
$ ./script
$ echo $VARIABLE
$ . ./script
$ echo $VARIABLE
something
答案 1 :(得分:2)
你可能会使用“。”的另一个原因。或“source”执行脚本是因为有问题的脚本没有以“#!/ bin / bash”(shebang)开头,它告诉shell哪个程序应该解释相关脚本。