实际上,., ./, 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,通常用于