mkfifo fifo
echo 1 >fifo 在最后一个命令上阻塞。
但是,它必须同时在两端打开,然后才能继续对其进行任何输入或输出操作。打开一个 FIFO 进行读取通常会阻塞,直到某个其他进程打开同一个 FIFO 进行写入,反之亦然。
但
>mkfifo fifo
>exec 5<>fifo
>echo 1 >&5
不会阻塞并且运行良好。再次,AFAIK shell 使用 dup2 进行重定向,但这有什么不同呢?
实际上,当我提出问题时,我找到了答案。我会在下面贴出来。