2014-10-10 32 views

回答

1

您参考的命令是使用process substitution,即<(...)部分。本质上,它需要cmd1的输出,并将它呈现为,好像它是文件系统diff中的命名文件。这是bash外壳的一个功能,因此,首先您需要确保您使用的是bash而不是sh

如果这样不能解决问题,您可以尝试下载并安装AIX的最新bash

如果不起作用,则需要使用2个临时文件,这样的事情(或使用mktemp):

cmd1 > tmp1_$$ 
cmd2 > tmp2_$$ 
diff tmp1_$$ tmp2_$$ 
rm tmp?_$$ 
+1

我相信<(...)语法也SES在/ dev/AIX没有的fd/N设备驱动程序。 bash必须通过一些路径才能打开。在Unix上,如果fd在fd 5上打开,那么/ dev/fd/5也将打开相同的fd。 – pedz 2014-10-12 12:50:28

+0

@pedz是的,谢谢你的补充。 – 2014-10-12 14:00:31