1

假设我有一个输入文件和一个输出文件(test.in 和 test.out)和一个程序“./myprogram”,标准输入重定向到来自 test.in,并使用从标准输出中捕获的结果进行比较用 test.out

我该如何比较

我在想,

 if [ $(myprogram < test.in) == $(cat test.out) ]

有什么建议么?

4

2 回答 2

4

使用cmp并指定-为要比较的文件之一,这告诉它使用标准输入。

if myprogram < test.in | cmp -s - test.out; then

如果要在不创建临时文件的情况下比较两个命令的输出,请使用该<(cmd)功能。(在 中搜索“进程替换” man bash。)

if cmp -s <(myprogram < test1.in) <(myprogram < test2.in); then

或者diff,如果您想知道有什么区别。

于 2012-10-01T01:46:26.580 回答
0

我会使用差异。像这样的东西:

if cat test.in | myprogram | diff - test.out

于 2012-10-01T01:56:14.740 回答