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十三问.真是篇好文章~

posted @ 2012-08-10 00:23  __木头鱼__  阅读(318)  评论(0编辑  收藏  举报