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'