linux 错误流传入管道的几种方式

int32位 posted @ Aug 22, 2013 02:34:20 PM in linux , 3045 阅读
转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!

正常情况下当运行命令: command1 | command2 时,只能把command1标准输出传入command2 输入,即只能将标准流传入管道,但有时我们需要将错误流传入管道,就比较麻烦了。有以下解决方案:

  1. command1 2>&1 | command2 ,这样可以把错误流重定向到标准输入流,然后在传入管道。这样的问题是标准流和错误流混在一起了,这可能不是我们所需要的。
  2. 在bash、tcsh中直接支持将错误流传入管道,即 command1 |& command2,这样方法最方便,但不是所有shell都能够支持的。
  3. 先把错误流文件保存到临时文件中,在读取,然后重定向,即 command1 2>tmpfile && cat tmpfile | command2,这种方式健壮性比较好,但同时效率肯定比较低的。

当然或许有其他更好的方式,目前仅想到这几种方式。

转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!
  • 无匹配
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter