source,fork,exec命令的区别
source命令,即 . 命令,和exec一样都是bash的内部命令.source命令指在当前进程中执行参数文件中的命令,而不是另起一个子进程(sub-shell). sub-shell和它的父进程唯一的区别是,他们的pid不一样.
而exec命令不会产生新的子进程,而是直接关闭当前shell 的 process.然后换到后面的命令继续执行.
fork是另起一个新的进程来执行命令.
值得注意的是()和{},虽然两者都可将多个命令作群组化处理,但若从技术细节上,却是很不一样的:
( ) 将 command group(命令群组:将多个命令集中处理) 置于 sub-shell 去执行,也称 nested sub-shell。
{ } 则是在同一个 shell 内完成,也称为 non-named command group
更多细节可以看看shell十三问:http://blog.csdn.net/freexploit/article/details/626660
本文参照的就是shell十三问.真是篇好文章~