我看过的shell脚本包括如下一行:
source someOtherFile
我知道这会导致someOtherFile执行的内容,但是意义source何在?
someOtherFile
source
后续问题:可以源任何脚本,还是仅源某些类型的脚本?脚本的来源(与正常执行相反)是否有除环境变量以外的其他副作用?
source在脚本上运行命令会在当前进程的上下文中执行脚本。这意味着由脚本设置的环境变量在完成运行后仍然可用。这与正常运行脚本相反,在正常情况下,脚本退出后,新生成的进程中设置的环境变量将丢失。
您可以获取任何可运行的Shell脚本。最终效果将与您在终端中键入脚本中的命令一样。例如,如果脚本更改目录,则在完成运行后,您当前的工作目录将已更改。