1

要激活 TurboGears virtualenv(仅作为示例),请执行以下操作:

. bin/activate

或这个:

source bin/activate
  1. 为什么当前目录是“.” 作为命令工作?

  2. 为什么使用“来源”或“。” 有吗?为什么不简单地“bin/activate”?

(我对此进行了一些网络搜索,但“。”和“来源”得到了很多不好的点击。)

4

2 回答 2

6
  1. .在这种情况下,并不意味着“当前目录”。它只是source.
  2. 获取脚本(使用.or source)在当前shell 的上下文中运行脚本,而不是启动子 shell。这意味着它可以对您当前的 shell 环境进行修改。简单地运行一个脚本不能做到这一点。例子:

    $ cat script
    VARIABLE=something
    $ echo $VARIABLE
    
    $ ./script 
    $ echo $VARIABLE
    
    $ . ./script
    $ echo $VARIABLE
    something
    
于 2012-09-16T23:42:10.463 回答
2

您可能使用“。”的另一个原因。或“源”来执行脚本是如果有问题的脚本不以“#!/bin/bash”(shebang)开头,它告诉 shell 哪个程序应该解释有问题的脚本。

于 2012-09-17T01:51:56.760 回答