我正在编写一个bash脚本来运行我正在编写的工具的集成测试。
基本上我使用一组输入运行应用程序,并使用diff命令行工具将结果与期望值进行比较。
它有效,但我想通过了解diff命令的结果并根据diff的结果打印“SUCCESS”或“FAIL”来增强它。
我该怎么办?
答案 0 :(得分:6)
if diff file1 file2; then
echo Success
else
echo Fail
fi
如果两个文件都相等,则diff返回0,这是if
跟随then
的返回码。如果file1和file2不同,则diff返回1,这使得跳转到构造的else
部分。
您可能希望通过编写diff file1 file2 >/dev/null
而不是上述内容来抑制diff的输出。
答案 1 :(得分:5)
$?
变量保存最后执行的命令的结果。
答案 2 :(得分:2)
此外,在Bash中,您可以直接使用进程替换diff
命令的输出:
if diff <(some_command arg1) <(some_command arg1) > /dev/null 2>&1
then
echo "They're the same."
else
echo "They're different."
fi