Você precisa de espaços em torno de [
e ]
, por exemplo,
if [ "$MARK" -ge 0 -a "$MARK" -lt 50 ]; then
A maneira como você o escreveu, quando $MARK
é 7
, ele tenta executar o comando [7
em vez de passar 7
como um argumento para o comando [
( [
é apenas um curto nome para test
).
Você também deve citar a variável. Caso contrário, se o usuário inserir uma linha em branco ou várias palavras, a expressão de teste não será analisada corretamente.