如果我有一个程序、它的输入和所需的输出,我如何自动比较我希望程序提供的内容和它实际提供的内容?例如:
a=${./program < inputfile}
diff ${a} outputfile
答案1
diff
将文件名作为参数——而是从命令的标准输出传递数据。如果您使用的是 bash、zsh 或其他类似的 shell,则可以使用进程替换:
diff <(./program < inputfile) outputfile
或者,POSIXly(您也可以使用命名管道,但这可能有点过头了):
./program < inputfile > /tmp/program-out
diff /tmp/program-out outputfile
rm /tmp/program-out