Bourne Shell中的进程替换是否像Bash中那样?

时间:2016-10-01 23:39:14

标签: shell unix process substitution

我正在尝试使用cmp来比较两个命令的输出(Bourne shell):

cmp<(ls $ file1)<(ls $ file2)

它在Bash中运行良好,但在Bourne中无效。有什么解决方案吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

使用命名管道实现(或以前)进程替换。您可以直接使用mkfifo重新创建相同的行为:

mkfifo pipe1 pipe2
ls $file1 > pipe1 &
ls $file2 > pipe2 &
cmp pipe1 pipe2
rm pipe1 pipe2

但除了表演之外,与常规文件相比,你不会获得太多收获......