HustOj使用脚本开启判题功能

部署HustOJ后,发现有判重功能,我们可以在比赛的时候关闭前台判重产生的代码相似度,开启后台判重。
比赛结束后,管理员可以查看判重结果。故写了一个脚本:

#!/bin/bash
echo "请输入数:(1,2,3,4)"
echo "1.开启后台判重,关闭前台判重(比赛前)"
echo "2.关闭后台判重,开启前台判重(比赛后)"
echo "3.开启后台判重,开启前台判重"
echo "4.关闭后台判重,关闭前台判重"
filerear=/home/judge/etc/judge.conf
#/home/judge/etc/judge.conf
filehead=/var/www/html/JudgeOnline/include/db_info.inc.php
#/var/www/html/JudgeOnline/include/db_info.inc.php

read tmp
if [ "$tmp" -eq "1" ]
then
   sudo sed -i '/^OJ_SIM_ENABLE=/cOJ_SIM_ENABLE=1' $filerear
   sudo sed -i '/^static  $OJ_SIM=/cstatic  $OJ_SIM=false;' $filehead
   echo "后台:开启   前台:关闭"
fi
if [ "$tmp" -eq "2" ]
then
   sudo sed -i '/^OJ_SIM_ENABLE=/cOJ_SIM_ENABLE=0' $filerear
   sudo sed -i '/^static  $OJ_SIM=/cstatic  $OJ_SIM=true;' $filehead
   echo "后台:关闭   前台:开启"
fi 
if [ "$tmp" -eq "3" ]
then
   sudo sed -i '/^OJ_SIM_ENABLE=/cOJ_SIM_ENABLE=1' $filerear
   sudo sed -i '/^static  $OJ_SIM=/cstatic  $OJ_SIM=true;' $filehead
   echo "后台:开启   前台:开启"
fi
if [ "$tmp" -eq "4" ]
then
   sudo sed -i '/^OJ_SIM_ENABLE=/cOJ_SIM_ENABLE=0' $filerear
   sudo sed -i '/^static  $OJ_SIM=/cstatic  $OJ_SIM=false;' $filehead
   echo "后台:关闭   前台:关闭"
fi 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis 的 Lua 脚本功能是一个非常强大的功能,它允许您在 Redis 服务器上执行自定义 Lua 脚本使用 Lua 脚本可以让您在 Redis 中执行比原生 Redis 命令更复杂的操作。以下是使用 Redis 的 Lua 脚本功能的步骤: 1.编写 Lua 脚本。您可以使用任何文本编辑器编写 Lua 脚本。在脚本中,您可以使用 Redis 提供的 Lua 库和 API,这些 API 允许您访问 Redis 数据库,并执行各种操作。 2.将 Lua 脚本加载到 Redis 中。您可以使用 Redis 的 EVAL 命令将 Lua 脚本加载到 Redis 中。这个命令需要传递两个参数:脚本本身和一些参数(如果需要的话)。 3.执行 Lua 脚本。一旦您将 Lua 脚本加载到 Redis 中,您就可以使用 EVAL 命令在 Redis 服务器上执行它了。这个命令将返回 Lua 脚本的结果。 以下是一个简单的 Lua 脚本示例,该脚本将从 Redis 中获取一个键的值,并将其加倍: ``` local value = redis.call('GET', KEYS[1]) value = tonumber(value) value = value * 2 redis.call('SET', KEYS[1], value) return value ``` 在这个例子中,我们使用了 Redis API 中的一些函数,如 `redis.call`、`redis.set` 和 `tonumber`。我们还使用了一个参数 `KEYS[1]`,这个参数是一个数组,表示我们要操作的键的名称。 要将 Lua 脚本加载到 Redis 中,您可以使用 EVAL 命令: ``` EVAL "local value = redis.call('GET', KEYS[1])\nvalue = tonumber(value)\nvalue = value * 2\nredis.call('SET', KEYS[1], value)\nreturn value" 1 mykey ``` 在这个例子中,我们将 Lua 脚本作为字符串传递给 EVAL 命令,并将 `mykey` 作为参数传递给该脚本。 要执行 Lua 脚本,请使用 EVAL 命令: ``` EVAL "local value = redis.call('GET', KEYS[1])\nvalue = tonumber(value)\nvalue = value * 2\nredis.call('SET', KEYS[1], value)\nreturn value" 1 mykey ``` 在这个例子中,我们将 Lua 脚本作为字符串传递给 EVAL 命令,并将 `mykey` 作为参数传递给该脚本。 这只是使用 Redis 的 Lua 脚本功能的一个简单示例。如果您有更多的问题,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值