11

在linux下,.(点)+(空格)+可执行文件 == source+(空格)+可执行文件,表示在当前shell环境执行后面的命令或脚本,不加点号默认是新开一个shell执行的。它从指定的shell 文件中读入所有命令语句并在当前进程中执行。
如:
. /home/test.sh 等同于 source /home/test.sh。
用source执行的脚本所做的任何改变会影响当前shell(如其中有用cd改变目录,脚本执行完后目录就变掉了),如果没用source,就不会影响当前shell。
如果不想更改文件的执行权限,又想执行此文件,可以采用(点号+空格+可执行文件名)的形式来执行一个脚本(当然,只有root用户才可以这么做)。
在Linux环境中,使用`.` (点) 或 `source` 命令执行脚本有不同效果。`.` 和 `source` 都能让脚本在当前shell环境中执行,避免新开进程。若不使用它们,脚本将在子shell中运行,不会影响当前shell的环境。例如,`./test.sh` 等同于 `source test.sh`,前者不会改变当前目录,而后者会。了解这种区别对于正确执行和管理shell脚本至关重要。
243

被折叠的 条评论
为什么被折叠?



