我想將相同的信息寫入兩個管道,但我不想等待第一個管道讀取。這裏有一個例子異步三通
mkfifo one mkfifo two echo hi | tee one two & cat one & cat two &
cat one
直到cat two
運行不會開始閱讀。有沒有辦法讓cat one
無需等待?
我想將相同的信息寫入兩個管道,但我不想等待第一個管道讀取。這裏有一個例子異步三通
mkfifo one mkfifo two echo hi | tee one two & cat one & cat two &
cat one
直到cat two
運行不會開始閱讀。有沒有辦法讓cat one
無需等待?
問題:FIFO都阻擋直到用於讀。所以只需在其上打開一個讀取FD:
mkfifo one two
echo hi | tee one two &
exec 3<one
exec 4<two
cat <&3
cat <&4
當三通的輸入大於管道緩衝區時,這似乎不起作用。重現:用'dd if = <(yes)count = 1000 |更改第二行tee one two>/dev/null&',腳本將被阻止 – hbogert 2015-09-28 11:16:10