shell中source sh exec的区别
source conf.sh
是直接运行conf.sh的命令,不创建子shell,类似于include
sh conf.sh
是创建子shell,子shell里面的变量父shell无法使用,对环境变量的修改也不影响父shell。父shell中的局部变量,子shell也无法使用,只有父shell的环境变量,子shell能够使用。
exec conf.sh
这个与source类似,区别是exec执行完,不再执行后面的语句。使用exec command方式,会用command进程替换当前shell进程,并且保持PID不变。执行完毕,直接退出,不回到之前的shell环境。