Aritmética da shell: referenciando uma variável sem o $ principal

0

Fiquei surpreso ao ler isso no manual do Bash, descrevendo Aritmética Avaliação :

Within an expression, shell variables may also be referenced by name without using the parameter expansion syntax.

Eu testei e, de fato, var se comporta da mesma forma que $var :

❯ var=9
❯ echo $(( var + 5 ))
14
❯ (( var < 10 )) && echo 'single digits!'
single digits!

Considera-se má prática fazê-lo? É portável para outras conchas, ou isso é um Bashismo?

    
por ivan 13.06.2017 / 02:30

1 resposta

2

Não é considerado uma prática ruim não usar $ para variáveis dentro da avaliação aritmética. Quanto à portabilidade, ((…)) em geral não é POSIX, então não funcionará em shells como o dash. Ele funcionará em zsh e ksh. Por outro lado, $((…)) está em POSIX e funciona em todas as shells modernas sh-style.

    
por 13.06.2017 / 02:38