我正在学习一些编程面试问题,因此我编写了 FizzBuzz 代码。我试图将程序的输出与 .txt 文件中已知的良好输出进行比较。
如何检查node fizzbuzz.js
输出是否逐行等于expected-output.txt
文件,甚至等于diff
它们?
我已经按照重复问题中的建议尝试过此操作:
diff -u expected-output.txt <(node fizzbuzz.js)
但diff
没有输出任何内容,并且似乎永远不会退出,直到我^C
.该程序本身运行良好,也是如此,只是由于某种原因diff -u expected-output.txt <(cat test.txt)
它似乎运行得不好。node
答案1
在 Bash/ksh/Zsh 中:
diff -u file.txt <(some command)
该<(some command)
构造称为流程替代,它使得输出一些命令就像从文件中一样可用,因此diff
可以读取它。 (它从命令设置管道并扩展为命名管道的名称或)。/dev/fd/N
类似地,>(some command)
可用于重定向写入到命令。