O problema é que você está tentando realizar substituição de parâmetro ao preceder o primeiro nome do parâmetro posicional com $
.
Você pode realizar o que quiser da seguinte forma:
...
elif [ $1 -lt 1000000 ]
then
arg="$1"
let arg/=1000
echo $arg" "$kilo
fi
Tanto quanto eu posso dizer, você não pode usar o parâmetro posicional diretamente dizendo:
let 1/=1000
porque isso seria um erro de sintaxe.
Por acaso, na sua mensagem de erro, posso ver que $1
foi definido como 28888
. Você deve notar que Bash não faz aritmética de ponto flutuante. Você encontrará arg
definido como 28
(o quociente da divisão inteira de 28888 por 1000) em vez de 28.888. Por favor, veja este maravilhoso Q & Um sobre como fazer aritmética de ponto flutuante em scripts.