无法写入到命名pipe道

我试图写入一个命名的pipe道,用mkfifo 。 但是当我运行这个命令时,(ex) ls > myNamedPipe ,我不能再把命令input到bash中。 我仍然可以写字符,这是非常多的。

Solutions Collecting From Web of "无法写入到命名pipe道"

命名管道保持打开,直到您从其他地方读取。 这是为了允许不同进程之间的通信。

尝试:

 mkfifo fifo echo "foo" > fifo 

然后打开另一个终端并键入:

 cat fifo 

如果你回到你的第一个终端,你会注意到你现在可以输入其他的命令。

另请参阅相反的情况:

 # terminal 1 cat fifo # terminal 2 echo "foo" > fifo # and now you can see "foo" on terminal 1 

如果你希望你的终端在试图向fifo写入数据的时候不要“挂上”,那么在fifo上附加一个文件描述符:

 mkfifo fifo exec 3<> fifo echo "foo" > fifo echo "bar" > fifo