Como o eco analisa $ 100?

2

Estou aprendendo o comando echo :

$ echo $100
00
$ echo $1

$

então por que echo parse $1 como variável indefinida e imprimir zeros seguintes, mas não $100 como um todo? Estou usando o Ubuntu 14.04.

    
por mzoz 21.08.2017 / 17:00

1 resposta

2

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'
    
por 21.08.2017 / 17:06

Tags