./test.sh . ./test.sh source ./test.sh的区别
背景
今天写几个shell脚本,使用一个公共的config.sh,但是export出来的东西在另外的*.sh中不能直接用,这让我很惆怅,印象中就是可以export出来给别的shell用啊,只要不是下一次就行啊。。。
查资料
果然是我图样图森破啊,知识半吊子水都没啊。
查到这样一篇http://blog.csdn.net/dance_rise/article/details/8573560
结论
-
./test.sh
就是bash test.sh
,在子进程中执行 -
. ./test.sh
与source ./test.sh
的功能相同,在当前进程中执行
在shell里调用另外一个.sh是在子进程中运行的,即使export出去,也不能被父进程使用。