Também usei muito o Beecrowd e tinha um script assim. Porém o meu validava a entrada e saída também. Vou deixar aqui para referência.

Minha estrutura:

Eu resolvia os exercícios em c++ e tinha essa estrutura de pastas:

workspace
    - resolvidos
        - categoria (iniciante, geometria ...)
            - 1001.cpp
            - 1002.cpp
    - in (arquivo com a entrada do beecrowd)
    - out (arquivo produzido pelo meu programa)
    - expected (arquivo com a saída do beecrowd)
    - 1081.cpp (arquivo que estou trabalhando no momento)
    - run.sh

run.sh:

g++ $1.cpp -o $1
/usr/bin/time -v ./$1 < in > out
code --diff out expected

O que isso faz?

usarei como exemplo ./run.sh 1081

g++ $1.cpp -o $1 -> compila o arquivo 1081.cpp produzindo o programa 1081 (sim, sem extensão)

/usr/bin/time -v ./$1 < in > out -> chama o programa time, que calcula quanto tempo demora para um programa executar e chama o programa 1081 passando para ele a entrada e escrevendo o que ele printar na saída

code --diff out expected -> compara o arquivo produzido com o esperado

FYC: trabalhando com entrada e saída de arquivos direto no terminal

./$1 < in > out

se digitar somente isso quando o terminal vê o operador '<' ele passa todo o conteúdo do arquivo para dentro do programa. como se você tivesse digitado aquilo.

se o terminal encontrar o operador '>' vai escrever a saída do programa no arquivo substituindo completamente o conteúdo dele. útil nesse caso quando roda várias vezes

se o terminal encontrar o operador '>>' vai escrever a saída do programa no final do arquivo sem apagar o conteúdo existente. Útil para logs

Acredito que algum insight desses que usava possam te inspirar a melhorar seu script

Entendido completamente, Pilati. Obrigado pelo comentário e levarei em consideração seus insights. Aliás, me parece que esse possa ser um dos problemas relacionados ao Beecrowd e outras plataformas de Pergunta e Resposta voltadas para programação. Me leva a ideia de, quem sabe um dia, tentar providenciar uma estrutura que possa apoiar quem realmente quer começar na programação por esse meio. Mas por hora, vou ver como posso melhorar meu script.

Enfim, agradeço!