这个管线命令『 | 』仅能处理经由前面一个指令传来的正确资讯,也就是standard output的资讯,对于stdandard error并没有直接处理的能力。
- 管线命令仅会处理standard output,对于standard error output 会予以忽略
- 管线命令必须要能够接受来自前一个指令的资料成为standard input 继续处理才行。less, more, head, tail等都是可以接受standard input的管线命令。至于例如ls, cp, mv等就不是管线命令了!因为ls, cp, mv并不会接受来自stdin的资料。
如果你硬要让standard error 可以被管线命令所使用,那该如何处理?其实就是透过上一小节的资料流重导向即可!让2>&1 加入指令中。