在Linux中用source,dot(.)和直接用脚本文件名执行shell脚本的区别

2014-11-24 11:52:46 · 作者: · 浏览: 5

用source,dot(.)的方式执行shell脚本的时候,不产生子进程,shell脚本在当前的shell中运行,shell脚本运行完成后,在shell脚本中声明的变量在当前的shell中是可见的.


直接用脚本文件名的方式执行shell脚本的时候,产生子进程,shell脚本在子进程中运行,shell脚本运行完成后,在shell脚本中声明的变量在当前的shell中是不可见的.


验证过程:


在当前目录下有一个tt.sh的脚本内容如下:


echo $$
ttvar=12345