当前位置: 技术问答>linux和unix
关于子shell
来源: 互联网 发布时间:2016-11-22
本文导语: 本帖最后由 bayougeng 于 2011-04-14 15:27:41 编辑 我看了一篇教程:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html 里面有一个subshell的示例: [root@pvcent107 ~]# (ping www.ibm.com &) [root@pvcent107 ~]# ps -ef |grep www.ibm.com root ...
里面有一个subshell的示例:
[root@pvcent107 ~]# (ping www.ibm.com &)
[root@pvcent107 ~]# ps -ef |grep www.ibm.com
root 16270 1 0 14:13 pts/4 00:00:00 ping www.ibm.com
root 16278 15362 0 14:13 pts/4 00:00:00 grep www.ibm.com
但在我的机器上,我试了一下,却不是这样的,在我的Redhat上是这样的结果:
[root@localhost ~]# (ping 192.168.19.1 &)
[root@localhost ~]# PING 192.168.19.1 (192.168.19.1) 56(84) bytes of data.
64 bytes from 192.168.19.1: icmp_seq=1 ttl=128 time=2.99 ms
64 bytes from 192.168.19.1: icmp_seq=2 ttl=128 time=1.58 ms
64 bytes from 192.168.19.1: icmp_seq=3 ttl=128 time=0.721 ms
也就是说,subshell中的输出被显示到了当前shell上。
为什么会这样呢?
另外,我觉得即使不将这个命令放到括号中运行,也不应该有输出,因为我已经指定它是一个后台进程,但是事实是这样:
[root@localhost ~]# ping 192.168.19.1 &
[1] 5650
PING 192.168.19.1 (192.168.19.1) 56(84) bytes of data.
[root@localhost ~]# 64 bytes from 192.168.19.1: icmp_seq=1 ttl=128 time=1.84 ms
64 bytes from 192.168.19.1: icmp_seq=2 ttl=128 time=1.10 ms
|
后台进程同样会有输出啊
ls &
照样能输出文件列表
ls &
照样能输出文件列表
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。