source
和sh
都可以执行脚本文件,但它们的行为稍微有所不同。
-
source
命令在当前shell进程中执行指定的脚本文件,并将其中的命令和变量导入到当前shell环境中。这意味着,通过source
执行的脚本可以直接影响当前shell环境中的变量和函数。 -
sh
命令是用来启动一个新的shell子进程,并在子进程中执行指定的脚本文件。脚本中的命令和变量仅在子进程中生效,不会影响到父进程或其他进程。
当脚本中定义的变量和函数需要在之后的代码中使用时,应使用source;当脚本中执行的内容与其他操作无关,是一个独立的部分时,应使用sh