linux 中的source命令
source命令是bash中的内建命令,它等同于点命令(.),用于读取和在当前shell环境中执行指定文件中的命令,执行完毕之后退出码为该文件中的最后一个命令的退出码,指定的文件可以没有执行权限(没有权限是指该文件没有rwx中x的权限,也就是可执行到权限,这里到意思是说,即使该文件没有可执行权限,通过source也可以执行他)。
在当前shell中执行(source是在当前shell中执行的)和在子shell中执行的区别是,后者定义的变量和函数在执行结束后就消失了,而前者却可以保留下来。有时候我们修改了/etc/profile里面的内容,如增加了环境变量,那么要立即生效的话,就必须使用source(source /etc/profile)命令或者点命令在当前shell中执行一下。
代码如下:
fun1(){
a=3
}
fun1
运行如下:
其中,unset a 是删除变量a,可以看到打印出空行,也可以看到 source 和 . 是等价的。
如果直接执行此文件,如下:
可以看到,函数执行后变量消失了。
参考地址:http://codingstandards.iteye.com/blog/837935