无聊乱搞:用shell脚本实现windows下cena的评测功能

来源:互联网 发布:淘宝处罚考试答案题库 编辑:程序博客网 时间:2024/06/09 19:48

作为一个Linux渣渣,写出来这一个小脚本真是各种艰难,自己乱搞乱实验加网上各种查了解到了一些小语法以及一些命令的用法。最终还是实现了“截肢”版的cena。收获还是颇多的,主要是那一堆shell脚本的小语法细节。这个脚本的用法很简单,只要在当前文件夹里创建好data文件夹和src文件夹,直接运行即可,在result文件里查看结果。

不过实现的仅仅是“截肢”版,而且有一些评测误差,反馈的程序运行结果也不是很完善(只有A,T,W),今后有时间会不断改进,并且让程序输出不断完善。当然欢迎路过的大牛帮忙改进。

#get list#ls ./src/ > src.list.tmpls ./data/ > ls.tmpsort ls.tmp > data.list.tmprm ls.tmp#get list#while read srcdo    echo -----$src----- >> result    while read file    do        echo -n $file: >> result        g++ ./src/$src/$file.cpp -o ./exe        ls ./data/$file/ > ls.tmp        sort ls.tmp > test.list.tmp        while read datain        do            read dataout            cp ./data/$file/$datain ./$file.in            sh /home/sky/tmp/run_exe.sh            read tle < tle.tmp            diff -q -w ./data/$file/$dataout ./$file.out >> cmp.tmp 2>&1            test -s cmp.tmp            wa=$?            rm -f cmp.tmp tle.tmp $file.in $file.out            if [ $tle -eq 137 ]            then echo -n T >> result            elif [ $wa -eq 0 ]             then echo -n W >> result            else echo -n A >> result            fi          done < test.list.tmp        rm exe  ls.tmp test.list.tmp        echo >> result    done < data.list.tmpdone < src.list.tmprm *.list.tmp
ulimit -t 1./exeecho $? > tle.tmp

ulimit 的时间限制只能从大往小改,所以只能再开一个脚本来运行
sort
test
[ ]
echo -n
while read do done < filename

0 0
原创粉丝点击