Por que devo usar $ [EXPR] em vez de $ ((EXPR))?

2

No parágrafo explicando a expansão aritmética, o Guia do usuário do Bash revela dois diferentes formas de avaliar uma expressão, a primeira usa $(( EXPRESSION )) e a segunda usa $[ EXPRESSION ] . As duas formas parecem bastante semelhantes, pois a única diferença que encontrei é:

$[ EXPRESSION ] will only calculate the result of EXPRESSION, and do no tests:

No entanto, estou intrigado porque o mesmo documento recomenda usar $[ EXPRESSION ] em vez de $(( EXPRESSION )) .

Wherever possible, Bash users should try to use the syntax with square brackets:

Por que você quer isso se menos testes estiverem sendo feitos?

    
por qdii 30.06.2013 / 14:11

1 resposta

5

Pergunta de duplicação (com resposta)

link

A página man do bash v3.2.48 diz:

[...] The format for arithmetic expansion is:

 $((expression)) 

The old format $[expression] is deprecated and will be removed in upcoming versions of bash.

Então $ [...] é uma sintaxe antiga que não deve mais ser usada

Além dessa resposta:

link

Informações relacionadas às versões bash:

Aqui estão algumas informações sobre as páginas man do bash (é difícil encontrar informações sobre a qual versão cada uma está se referindo):

Link do OP:

link Guia de Bash para Iniciantes versão: 1,11 autor: Machtelt Garrels, última atualização: dezembro de 2008

sth (74.6k rep) citando o bash v3.2.48

de link )

Nota: Mais informações sobre [] vs (()) aqui: link

um link que encontrei:

link última atualização em 22 de agosto de 2012

link

    
por 30.06.2013 / 14:48

Tags