问答详情
源自:9-6 管道符

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

rt

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

提问者:五月_星空 2015-09-01 16:50

个回答

  • onemoo
    2015-09-02 10:26:08
    已采纳

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

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

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

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