1 exec builtin
不创建子shell,在原进程的上启动新的脚本,但是它会把老shell的环境清理掉,所以,它从原shell中什么也不继承,在一个干净的环境中执行新的脚本。执行完之后退出当前的shell。
2 source builtin
不创建子shell,在原进程上执行source的脚本。脚本的执行环境和原shell的一样。
3 bash filename或者./filename
创建子shell。
子shell可以从父shell继承环境变量、当前工作目录、已经打开的文件标识符、标准输入、标准输出和标准错误输出。
除了环境变量以外的变量都是不能继承的。
4 $(xxx)和`xxx`,命令替换
子 shell中执行。