在bash中,它起作用:
diff <(echo foo) <(echo bar)
1c1
< foo
---
> bar
在繁忙的盒子里,它不是。
Busybox表示,他们关注SUSv3标准;SUSv3提供了一种方法吗?大量的测试代码使用这样的技巧来检查命令输出,而不必创建临时文件。或者我至少可以说这样的伎俩不符合标准吗?
<(...)
被称为进程替换,是bash的一个特性。Busybox不支持它。
您可以进行
[ -p /tmp/f1 ] || mkfifo /tmp/f1
[ -p /tmp/f2 ] || mkfifo /tmp/f2
echo foo >> /tmp/f1 &
echo bar >> /tmp/f2 &
diff /tmp/f1 /tmp/f2
1c1
< foo
---
> bar
编辑
检查管道是否存在