`ls > fifo &` 阻挡鱼 shell

`ls > fifo &` blocks fish shell

在 fish shell 中,这会阻止输入:

$ mkfifo fifo
$ ls > fifo &

但是这在 zsh 和 bash 中有效。

那么如何启动这种将 stdout 重定向到 fifo 的后台进程?

正如所写,这可能永远不会在鱼中起作用 shell。 fish 总是在 fork 之前打开重定向,在这种情况下会死锁,因为 fifo 没有 reader.

我认为最好的解决方法是让其他人打开文件,例如 tee:

 > mkfifo fifo
 > ls | tee fifo >/dev/null &