Bash脚本知道命令的结果
我正在编写一个bash脚本来运行我正在编写的工具的集成测试 基本上,我使用一组输入运行应用程序,并使用diff命令行工具将结果与预期值进行比较 它正在工作,但我想通过了解diff命令的结果来增强它,并根据diff命令的结果打印“成功”或“失败”Bash脚本知道命令的结果,bash,diff,integration-testing,Bash,Diff,Integration Testing,我正在编写一个bash脚本来运行我正在编写的工具的集成测试 基本上,我使用一组输入运行应用程序,并使用diff命令行工具将结果与预期值进行比较 它正在工作,但我想通过了解diff命令的结果来增强它,并根据diff命令的结果打印“成功”或“失败” 我怎么做 变量$?保存最后执行的命令的结果 if diff file1 file2; then echo Success else echo Fail fi 如果两个文件相等,diff返回0,这是如果跟随然后的返回代码。如果file1和
我怎么做 变量
$?
保存最后执行的命令的结果
if diff file1 file2; then
echo Success
else
echo Fail
fi
如果两个文件相等,diff返回0,这是如果
跟随然后
的返回代码。如果file1和file2不同,diff将返回1,这将使If跳转到构造的else
部分
您可能希望通过写入
diff file1 file2>/dev/null
而不是上述内容来抑制diff的输出。此外,在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
if diff&1
然后
“他们是一样的。”
其他的
echo“他们是不同的。”
fi
谢谢,这对我很有用。我读到了大约美元?变量,但我不确定它是如何使用的。谢谢有人知道是否可以将一个目录中的所有文件与另一个目录中的文件区分开来吗?我试过diff dir1/*dir2/*但是没有用。LukeN:谢谢你的提示,我添加了一个解释。福克:我很高兴它对你有用。要区分目录,请使用-r(递归)开关:diff-rdir1 dir2