我正在编写一个bash脚本来运行我正在编写的工具的集成测试。

基本上我使用一组输入运行应用程序,并使用diff命令行工具将结果与期望值进行比较。

它有效,但我想通过了解diff命令的结果来增强它,并根据diff的结果打印“SUCCESS”或“FAIL”。

我该怎么做?

#1楼 票数: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的输出。

#2楼 票数:5

$? 变量保存最后执行的命令的结果。

#3楼 票数: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

  ask by Tiago Veloso translate from so

未解决问题?本站智能推荐:

2回复

bash中的Diff命令

每次运行以下 bash 命令时,都会出现错误: 这是代码: 这是错误: 我基本上想对两个文件进行排序,然后检查它们是否相等。 我不明白的是这个错误意味着什么以及我如何摆脱它。 任何帮助将不胜感激。 谢谢!
2回复

通过bash将大变量传递给diff命令

我正在编写在论坛Web目录上执行校验和(md5sum)的脚本。 这是一个bash脚本。 想法是对目录中的所有文件执行校验和,然后将其与具有校验和列表的文本文件进行比较。 如果我将脚本传递到文本文件中,然后在文本文件和我的已知校验和列表之间执行diff命令,该脚本将起作用,但我希望不要将
1回复

在bash中将命令作为输入传递给diff命令

我正在尝试比较服务器的文件系统状态,并将基准(初始状态)存储在一个initialSnapshot.log文件中。 现在,我尝试将其与运行时数据进行比较,以便可以回显文件统计信息中的任何更改。 但是,它不能按计划工作 请提出任何更好的设计方法? 我应该将find的输出存储在第二个文件中
1回复

Bash:脚本中的Diffcmd未按预期工作

我正在编写一个脚本来检查文件数组中的差异 file1 和file1.copy,以及file2 和file2.copy 是相同的。 这些命令在单独输入时工作正常,但在脚本中输出如下:
1回复

Bash脚本。检查网站是否有效

我需要编写一个脚本来告诉给定的网站(第一个参数)是否已更改。 我写了类似的东西,但它不起作用,无法继续查找错误
2回复

BashShell脚本:使用Diff命令

谁能帮我弄清楚该程序有什么问题吗? 它返回以下错误: 差异:缺少操作数 teste.sh:[:缺少']' 文件不同 (此处出现空白) 空格是变量“结果”,但是为什么它没有保存两个文件之间的差异? 我正在尝试使用diff来找出这两个文件的文字差异。
2回复

如何:使用bash将命令输出与文本文件进行比较

我正在尝试比较命令的输出 使用我使用相同命令创建的文件。 (我正在尝试一个穷人确保没有文件被修改过的方法。) 麻烦的是,我不知道如何使用我创建的文件来diff ls命令的输出。 我尝试了以下,每次都不起作用 将ls的输出与我已经保存的文件进行比较的神奇命令是什么?
1回复

带有正则表达式的diff命令(bash)

我想看看2个文件是否不同。 如果他们是我想输出一些东西。 如果不是,则输出其他内容。 这是我使用的代码,可以正常工作 但是,现在我想为我的diff添加条件,例如: 如何在diff命令中添加此正则表达式,以便我的if statements正常工作? 谢谢