#!/bin/bash
#
. ~/some_env database_name
代码看起来就像上面一样,每次我尝试在 bash 中运行它时,都会收到文件或目录不存在的错误。如果我创建目录,它会抱怨我正在使用目录。如果我创建一个文件,它会抱怨“文件名不是函数”。
这行代码有什么作用?很难弄清楚该行的作用,因为搜索字符串太短了。
另外,我对 bash 很陌生。
#!/bin/bash
#
. ~/some_env database_name
代码看起来就像上面一样,每次我尝试在 bash 中运行它时,都会收到文件或目录不存在的错误。如果我创建目录,它会抱怨我正在使用目录。如果我创建一个文件,它会抱怨“文件名不是函数”。
这行代码有什么作用?很难弄清楚该行的作用,因为搜索字符串太短了。
另外,我对 bash 很陌生。
.
是source的简写,所以这个命令只执行~/some_env
with 参数的内容database_name
。请注意,source
在当前 shell 上下文中(即不在子 shell 中)执行命名文件的内容,命名文件是否不可执行无关紧要。如果您没有some_env
在您的主目录中命名的文件或database_name
在当前工作目录中命名的文件,那么您将收到一条错误消息。
.
some_env
就像您在当前 shell 中键入命令一样运行脚本。这称为采购,与将其作为普通脚本运行不同,因为它可以设置环境变量、创建函数等,这些在运行该命令后将出现在您当前的 shell 中。
database_name
是第一个参数,将$1
在脚本中可用。
如果您在 处没有文件~/some_env
,您将收到一个错误,因为没有可运行的内容;脚本中的某些内容也可能引用了不存在的文件。您可能需要发布有关脚本的更多详细信息。
你知道它~
引用了你的主目录吗?如果脚本来自另一个用户,当他运行它时,它会在他的主目录中找到文件 some_env。当您运行它时,该文件要么不存在,要么不包含脚本所期望的内容。