FOR ACM OI
在linux的shell脚本对拍命令
执行方法:在终端下,进入当前目录,输入"sh ./nick.sh",(其中nick.sh为当前shell脚本名)
ubuntu14.04下实测成功
while true; do
./make>tmp.in #出数据
./tmp<tmp.in>tmp.out #被测程序
./tmp2<tmp.in>tmp2.out #正确(暴力)程序
if diff tmp.out tmp2.out; then #比较两个输出文件
printf AC #结果相同显示AC
else
echo WA #结果不同显示WA,并退出
#cat tmp.out tmp2.out
exit 0
fi #if的结束标志,与C语言相反,0为真
done # while的结束标志
#BY NICK WONG 2014-08-29
#在终端下,进入当前目录,输入"sh ./nick.sh",(其中nick.sh为当前shell脚本名) '#'表示单行注释
#diff在两文件相同时返回空串
参考1:贴吧的讨论:http://tieba.baidu.com/p/1748233229
参考2:ACM OI windows对拍模板 (详细注释版)

本文深入解析了Linux环境下shell脚本对拍命令的执行方法,通过实例展示了如何使用`sh ./nick.sh`命令运行shell脚本,并详细说明了脚本中关键指令的作用,包括使用`while`循环进行多次对拍测试,`./make > tmp.in`生成数据文件,`./tmp < tmp.in > tmp.out`执行被测程序,以及`./tmp2 < tmp.in > tmp2.out`执行对照程序,最后利用`diff`命令比较输出文件,实现自动化测试。
&spm=1001.2101.3001.5002&articleId=38931579&d=1&t=3&u=21dbd14ce10e4ca184480e376ae4670d)
7554

被折叠的 条评论
为什么被折叠?



