为了账号安全,请及时绑定邮箱和手机立即绑定

管道符前面的命令错误时,后面命令还会执行吗, 还是会直接报错?

rt

管道符前面的命令错误时,后面命令还会执行吗, 还是会直接报错?

正在回答

1 回答

管道会将前面命令的标准输入当作后面命令的标准输入一般程序错误时是没有标准输出的,其错误信息会送到标准错误输出

通常shell会启动前一个程序,并通过系统调用读取它的输出,再通过系统调用启动后一个程序,通过管道向后一个程序的标准输入进行输出。出错时如何处理应该是依照各shell实现而定。bash中是后续程序仍然执行,但不会获得任何输入。

所以后一个程序会执行,且你应该能在屏幕上看到前一个程序的错误输出。

另外,一般整个管道的返回状态是最后一个命令的退出状态。

0 回复 有任何疑惑可以回复我~
#1

五月_星空 提问者

非常感谢!
2015-09-02 回复 有任何疑惑可以回复我~
#2

onemoo 回复 五月_星空 提问者

啊,刚刚发现,第一句话就有错字。应为“管道会将前面命令的标准输出当作后面命令的标准输入”
2015-09-03 回复 有任何疑惑可以回复我~
#3

五月_星空 提问者 回复 onemoo

哈哈哈,发现了的,不过会很容易明白你的真正意思。 thx~
2015-09-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

管道符前面的命令错误时,后面命令还会执行吗, 还是会直接报错?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信