用于验证数据包的Shell脚本

问题描述 投票:1回答:1

我需要制作shell脚本来检查我的算法与数据负载(测试包保存在.in文件中,每个包含有.in文件的文件夹,另一个包含.out文件,其中应该是正确的结果)有时它大约是1000一个包中的文件,所以没有必要手动执行。我需要某种循环打开这个.in文件,然后重定向我的c ++程序的输入,并重定向该程序的输出(将结果保存到.out文件)但重点是我不能像我需要的那样快速获得这种语言。我想这个脚本将我的算法结果与包中的.out文件进行比较

for f in ExternalIn/*.in; do//part of code which opens process with my algorithm and compare its .out file to .out file from package
macos function shell unix
1个回答
1
投票

跳过检查丢失文件,空白安全等,您可能需要以下内容:

for f in ExternalIn/*.in; do
    # diff the result of my_cpp_app eating file.in with file.out
    # and store the comparison result in file.diff
    diff ${f/.in/.out} <(my_cpp_app <$f 2>/dev/null) > ${f/.in/.diff}
done

虽然我可能会使用find / xargs管道,这不仅更安全,而且允许并行执行。

或者甚至为此写一个Makefile并使用make,毕竟这是一种完全这种工作的工具。

© www.soinside.com 2019 - 2024. All rights reserved.