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對拍模板 (詳細註釋版)
@echo off
:ac
e-make>e.in :出數據
e-3<e.in>e.out :被測程序
e-2<e.in>e.out2 :暴力程序
fc e.out e.out2
:diff -q e.out e.out2 這句可以代替上一句
if errorlevel=1 goto wa
echo ac
goto ac
:wa
echo wa
:type e.out e.out2 :這句可有可無
pause
退出狀態
此命令返回下列退出值:
0 未找到不同處。
1 找到不同處。
>1 發生錯誤。