假设 14env.sh 脚本内容只有一行:export MY_VAR=”HelloWorld”
执行 source 14env.sh 后,在终端里直接输入 echo $MY_VAR,会输出 HelloWorld。这个变量会一直存在直到你关闭终端。
执行 sh 14env.sh 或 bash 14env.sh 后,再输入 echo $MY_VAR,会输出空行。因为变量在子进程中被设置,子进程结束变量就消失了。
运维实践建议:
当你需要配置当前工作环境(例如设置 JAVA_HOME, PATH 等)时,使用 source。
当你只是要运行一个完成某项任务的脚本时,使用 bash 或 sh。