LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1094|回复: 6

为什么一定要创建子shell?

[复制链接]
发表于 2009-12-30 16:19:50 | 显示全部楼层 |阅读模式
最近在看《linux程序员与用户指南》,里面提到了父shell与子shell的概念,但我有一点不明白,为什么每当用户要去执行命令或脚本时,父shell都要创建一个子shell,让这个子shell去执行脚本,父shell休眠,而不是父shell亲自去执行呢,这样不是更方便么?
望大家能不吝赐教,谢谢。
发表于 2009-12-30 17:42:49 | 显示全部楼层
父 shell 的老婆是父 shell 的,岂能共享给儿子?儿子要有自己的生活
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-30 17:50:00 | 显示全部楼层
Post by ServerOnly;2060655
父 shell 的老婆是父 shell 的,岂能共享给儿子?儿子要有自己的生活

那么我是不是可以这样说:子shell的工作是执行脚本和命令,父shell是用来显示子shell所提供的结果的;它们各有其职能?
回复 支持 反对

使用道具 举报

发表于 2009-12-30 22:35:47 | 显示全部楼层
我用slackcode发了
我用错帐号
回复 支持 反对

使用道具 举报

发表于 2009-12-30 22:36:47 | 显示全部楼层
如如事事亲力亲为,会累死的
所以分给下面的人去做,因为自己可以无限生成儿子嘛
而父SHELL也可以看作一个总司令嘛,这样才能打好仗
这样是提高稳定性的一个设计呢
回复 支持 反对

使用道具 举报

发表于 2009-12-31 10:30:42 | 显示全部楼层
Post by YZMSQ;2060620
最近在看《linux程序员与用户指南》,里面提到了父shell与子shell的概念,但我有一点不明白,为什么每当用户要去执行命令或脚本时,父shell都要创建一个子shell,让这个子shell去执行脚本,父shell休眠,而不是父shell亲自去执行呢,这样不是更方便么?
望大家能不吝赐教,谢谢。


最主要的问题是怎么收拾残局的问题。。。

子 shell 无论做了什么,最后回来了什么都没有,清干净了。

而如果在父 shell 中运行,那么脚本退出之后,所有的变量啊,环境啊,都回留在那里,久而久之,父 shell 里面充斥了各种各样的变量。。。

当然,你可以使用 . 或者叫做 source 命令直接在父进程中运行脚本,不过通常这样的主要目的就是“为了让子脚本中所有的变量延续到父脚本中来“。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-31 20:36:29 | 显示全部楼层
谢谢大家的帮助!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表