实际上,.
, ./
, bash
, dash
, source
是五种不同的方式来执行 shell 脚本,它们之间有一些区别。
.
(点号)或source
命令:这两个命令是等价的,它们都是 Bash shell 内置的命令。它们用于在当前 shell 环境中执行脚本。当使用. script.sh
或source script.sh
命令来执行脚本时,脚本中的命令将在当前 shell 中执行,而不会启动新的 shell 进程。这意味着脚本中定义的变量、函数或别名将在当前 shell 中生效。./
命令:这是一种相对路径的方式来执行脚本。当使用./script.sh
命令来执行脚本时,系统会查找当前目录下的script.sh
文件并执行它。这种方式也不会启动新的 shell 进程,脚本中定义的变量、函数或别名将在当前 shell 中生效。bash
命令:这是一个独立的命令,用于启动一个新的 Bash shell 并在其中执行脚本。当使用bash script.sh
命令来执行脚本时,脚本将在一个新的 Bash shell 中执行。这意味着脚本中定义的变量、函数或别名将仅在该新的 Bash shell 中生效,而不会影响当前的 shell 环境。dash
命令:这也是一个独立的命令,用于启动一个新的 Dash shell 并在其中执行脚本。Dash 是一个更小、更快的 shell,通常用于