Isso porque você está fazendo:
if [ expr $n % 2 -eq 0 ]
Como assim?
Porque
rem='expr $n % 2'
está atribuindo a variável rem
como string expr $n % 2
.
Você precisa de substituição de comando:
rem=$(expr $n % 2)
Use também o operador aritmético nativo de bash
em vez de expr
:
rem=$(( $n % 2 ))