这条命令中的点是什么意思?

这条命令中的点是什么意思?

根据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 中执行,但是当您退出脚本时,您会丢失在内部设置的所有变量。这种方式(带点)是如何保留变量值、更改的目录等。

相关内容