📅  最后修改于: 2023-12-03 14:54:31.604000             🧑  作者: Mango
在Shell命令行中,我们经常要执行一些程序或脚本文件。在Unix或类Unix系统中,我们使用.
或者source
命令来执行一个可执行文件或脚本文件。这个命令是用来执行指定脚本或命令文件中的语句,并返回结果到Shell当前环境。
在Shell命令行中执行可执行文件或脚本文件的语法如下:
. filename [arguments]
或者
source filename [arguments]
filename
:表示要执行的可执行文件或脚本文件的名字。arguments
:可选,表示要传递给被执行文件的参数,以空格进行分割。对于.
和source
命令,在普通的情况下,它们是等价的。它们会在当前Shell环境中执行指定的可执行文件或脚本文件,并将所有运行结果返回到当前Shell环境中。但是,它们在用于不同的Shell脚本文件时,有一些区别的:
.
等价于source
,所以两者都可以使用。.
是单独的命令,而source
是bash所特有的扩展命令。通过.
或source
命令可以为当前Shell环境加载定义在指定Shell脚本文件中的变量、函数和别名等信息。比如,在我们定义的一个Shell脚本文件example.sh
中包含如下内容:
#!/bin/bash
function hello(){
echo "Hello, world!"
}
我们可以在当前的Shell环境中通过以下命令执行Shell脚本文件,并且调用其中定义的函数:
$ source example.sh
$ hello #调用函数
Hello, world!
filename
参数必须用相对或绝对路径指定,否则系统会根据PATH环境变量来搜索要执行的可执行文件或脚本文件。$?
变量来判断执行结果是否成功,返回值为0表示执行正确,非0则表示执行失败。