shell 管道两端的程序,并不是左边的程序先启动 - yanbin's Blog

shell 管道两端的程序,并不是左边的程序先启动

yanbin posted @ 2015年3月15日 23:05 in Linux-使用 , 814 阅读
$ ps aux  | grep "demo"
这条命令中的 ps 先启动,会导致程序异常退出。
因为写一个没有读端的管道,引发 SIGPIPE 信号,SIGPIPE 信号默认行为是终止程序的执行。
管道的创建者(shell) 先创建管道,启动 read 管道的程序 (grep), 再启动 write 管道的程序(ps aux).
读一个没有写端的管道会阻塞,grep 可以接受阻塞。
 
$ ps aux | grep "demo" | grep -v "grep"
这样的命令相当于: (ps aux | grep "demo") | grep -v "grep".
Avatar_small
youtube video downlo 说:
2018年3月26日 17:12

This is also a very good post which I really enjoyed reading.

Avatar_small
Temple Run 2 Hack Ap 说:
2018年6月28日 16:54

an excellent runner on the android device that has conquered millions of players from all over the world. In this game you .


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee