Erro de script de bash: [i: comando não encontrado

Este programa é suposto aceitar um número do usuário e imprimir muitos números primos. Por alguma razão, o programa não funciona. Eu sou novo no bash scripting e este é o meu primeiro programa. Aos meus olhos tudo parece estar correto. Por favor, me diga onde eu errei.

<code>echo Enter num
read n
i=2
j=2

for(( i=2; i <= n; i++ ))
do

for(( j=2; j < i-1; j++ ))
do

if [i % j == 0];
then
break
fi


if [i == j];
then
echo "  $i"
fi
done
done
</code>

Esta é a saída que recebo

<code>Enter num
20
prime.sh: line 12: [i: command not found
prime.sh: line 18: [i: command not found
prime.sh: line 12: [i: command not found
prime.sh: line 18: [i: command not found
 .
 .
 .
</code>

Depois de fazer as alterações sugeridas

<code>read -p "Enter a  number : " n
i=2
j=2
for(( i=2; i <= n; i++ ))
do
    for(( j=2; j <= i-1; j++ ))
    do
        if [ $(( i % j )) == 0 ]
        then
            break
        fi
        if [ i == j ]
        then
            echo "  $i"
        fi
    done
done
</code>

Consegui rodar o programa, mas não produziu nenhum resultado

http://i.stack.imgur.com/Fd1se.png

questionAnswers(4)

yourAnswerToTheQuestion