我知道这已经存在了一段时间的问题,我发现了很多关于它的讨论,但是我没有得到最终的方法来完成它:管道,stdout和stderr。在bash中,这只是:
cmd 2>&1 | cmd2
答案 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重定向符号。