Ao declarar variáveis no shell, não deve haver espaços em branco ao redor de = .
No seu caso, vamos pegar uma linha, por exemplo: b= 'expr $a % 10' , você está tentando salvar a saída da substituição de comando 'expr $a % 10' na variável b ; como há um espaço após b= , você está obtendo o erro. Isto é verdade para todos os casos posteriores também. Então, solte o (s) espaço (s) depois de b= .
Como uma nota secundária, comece a usar a sintaxe de substituição de comandos $() em vez de ' ' mais antiga e reprovada para evitar problemas como substituição de comandos de aninhamento e problemas de citação estranhos:
b=$(expr $a % 10)
Além disso, você deve citar suas expansões de variáveis, a menos que esteja esperando que a divisão de palavras e a expansão do nome de caminho ocorram.