为什么使用点来执行配置文件

时间:2011-02-17 14:17:02

标签: unix

嘿伙计们 我是Linux的新手。

在下面的命令中,为什么使用点来执行配置文件?

. ~/.profile

3 个答案:

答案 0 :(得分:11)

正如Noufal所说,.source的别名。

通过获取文件,所有命令都在当前bash会话的上下文中执行,这意味着它现在可以使用它导出的所有环境变量。

如果您运行脚本而不是源代码,它将在子shell中执行,导出的变量不会传递给您的会话。实际上,这几乎违背了.profile的目的。

作为演示,假设您有文件test.sh

#!/bin/bash
# in test.sh
print "exporting HELLO"
export HELLO="my name is Paul"

如果你执行它:

[me@home]$ bash test.sh
exporting HELLO
[me@home]$ echo $HELLO

由于当前会话中未定义$HELLO,因此无法打印出任何内容。但是,如果您采购它:

[me@home]$ . test.sh
exporting HELLO
[me@home]$ echo $HELLO
my name is Paul

然后$HELLO将在您当前的会话中提供。

答案 1 :(得分:4)

句点运算符是source命令的别名。详情here

答案 2 :(得分:1)

在没有更多上下文的情况下很难说,但是一个用法是Bash特定的文件.bash_profile包含更通用的(就Bourne shell而言)文件.profile,因为当Bash发现首先,它不会自己加载第二个。