Como {1..$num_in} não foi expandido para sequências de números, ele só foi expandido para uma string literal como {1..1} , {1..2} e assim por diante. Então, seu script realizou uma expansão aritmética, viu um número inválido e imprimiu uma mensagem de erro.
Quando você usa o seu shebang como #!/bin/sh , depende do sistema usar o shell com o qual o /bin/sh está vinculado para executar seu script. Assim, a mensagem de erro pode variar dependendo das camadas.
com dash :
$ dash test.sh
aaaa
test.sh: 74: test.sh: Illegal number: {1..3}
com bash :
$ bash test.sh
aaaa
test.sh: line 74: {1..3}: syntax error: operand expected (error token is "{1..3}")
NOT equal to 6
total= 0
Com pdksh e mksh :
$ pdksh test.sh
aaaa
test.sh[77]: {1..3}: unexpected '{'
NOT equal to 6
total= 0
com yash :
$ yash test.sh
aaaa
yash: arithmetic: '{1..3}' is not a valid number
posh mesmo através de uma falha de segmentação:
$ posh test.sh
aaaa
test.sh:77: {1..3}: unexpected '{'
Segmentation fault
O script funcionará com zsh e ksh93 :
$ zsh test.sh
aaaa
aaaa
aaaa
equa to 6 6
total= 6