以下代码:
#!/bin/bash -x
mkfifo pipe 2>/dev/null
tee pipe >/dev/null &
cat pipe
运行时不产生输出,如下所示:
$ echo "hi" | ./test.sh
+ mkfifo pipe
+ cat pipe
+ tee pipe
$
为什么?!我希望tee
将标准输入复制到命名管道(和/dev/null
),然后cat
将命名管道的内容复制到标准输出。为什么它不起作用?!
我正在尝试编写一个更大的 bash 脚本,我真的需要tee
在其中,用其他东西代替/dev/null
. 我将意外行为缩小到上面的示例。