在鱼壳中管,stdout和stderr

时间:2016-05-30 17:02:00

标签: fish

我知道这已经存在了一段时间的问题,我发现了很多关于它的讨论,但是我没有得到最终的方法来完成它:管道,stdout和stderr。在bash中,这只是:

cmd 2>&1 | cmd2

1 个答案:

答案 0 :(得分:31)

这种语法也适用于鱼类。演示:

$ function cmd1
      sh -c 'echo "this is stdout"; echo "this is stderr" >&2'
  end

$ function cmd2
      rev
  end

$ cmd1 | cmd2
this is stderr
tuodts si siht

$ cmd1 2>&1 | cmd2
rredts si siht
tuodts si siht

您也可以使用cmd1 ^&1 | cmd2来使用fish的stderr重定向符号。

文档:https://fishshell.com/docs/current/index.html#redirects