Os parâmetros posicionais , $1 , $2 , ..., $9 , contêm os argumentos da linha de comando passados para a função shell ou shell atual. A string $100 será interpretada como $1 seguido por dois zeros. Isso será 00 se $1 não estiver definido ou vazio.
Definir os três primeiros parâmetros posicionais explicitamente em um script e testá-lo:
set -- a b c
echo "$100 $200 $300"
Isso resulta na saída
a00 b00 c00
Como os parâmetros posicionais além de 9 precisam ser acessados com, e. ${10} , não há ambigüidade entre $1 seguido por 00 e "parâmetro posicional 10 ou 100" (já que não há colchetes).
Se você quisesse imprimir a string literal $100 , você teria que escapar do $ do shell ou usar aspas simples:
echo \0
echo '$100'