根据Flask官方教程:
现在,每当您想要处理一个项目时,您只需激活相应的环境即可。在 OS X 和 Linux 上,执行以下操作:
$ . venv/bin/activate
这有效。然而,当我尝试运行./venv/bin/activate
和 时venv/bin/activate
,两者都给了我-bash: venv/bin/activate: Permission denied
。
我的问题是:它有什么.
作用?
答案1
在这种情况下,点与 shell 关键字同义source
。它的作用是读取文件并执行每一行,就像直接在命令行中键入一样。就权限而言,您所需要的只是对文件的读取访问权限。
使用 shell 命令获取文件与调用 shell 脚本不同:shell 脚本需要执行权限(这就是权限被拒绝的原因)并将启动其自己的(非交互式)shell。
答案2
点表示在当前 shell 中执行脚本。通常,shell 脚本在子 shell 中执行,但是当您退出脚本时,您会丢失在内部设置的所有变量。这种方式(带点)是如何保留变量值、更改的目录等。