-3

我正在关注关于 openvpn 的教程,它需要执行一个命令. ./vars。它显示一条消息。在阅读文件时,我发现它在文件中执行了一个 echo 命令,而忽略了文件中的所有其他内容。在添加其他 echo 语句时,它也会被执行。所以我想对此进行一些基本的解释。这仅与 bash 有关吗?

4

3 回答 3

1

.并且source是同义词:它只是在当前 shell 中逐行运行文件。./vars只是vars当前目录中命名的某个文件的路径。所以该命令所做的就是vars逐行运行文件。

至于你的其他问题,我真的不明白你在问什么。你能澄清一下吗?

于 2016-12-18T18:01:08.380 回答
0

.如果您正在使用命令行界面,则将 bash 脚本源或导入到您正在处理的当前脚本(如果您正在创建脚本)或当前 tty(终端或命令行)。它采购的脚本必须是可执行文件(它应该设置 -x 标志)

./filename表示在当前目录中查找文件名。如果您仅 ./filename在 tty(终端或命令行)或脚本中执行,它会查找文件名并检查文件名是否可执行,然后运行文件名。您不应该认为这./意味着当前的工作目录。使用两个点 ( ../filename) 而不是一个带文件名的点告诉 bash 解析器转到当前目录之前的上一个目录

使用. ./filename您告诉 bash 解析器.在您当前所在的目录中导入或获取 () 文件名 (./filename)

于 2016-12-18T22:53:19.823 回答
0

.开头有一个解释here,并且是对文件的./filename相对引用。

于 2016-12-18T18:01:15.987 回答