Em matrizes associativas, atribuindo índice e valor ao mesmo tempo

0

Em um script bash, encontrei o seguinte, mas embora funcione, não consigo entender sua lógica

REMOTESNAPS+=(["$FS"]=" $SNAP")

A declaração acima adiciona um elemento à matriz associativa REMOTESNAP definindo qual índice " $FS " deve ser usado e adicionando o segundo elemento " $SNAP " a ele.

Eu não encontrei uma explicação para essa maneira inteligente de construir matrizes associativas, nem o ponto no manual do bash, onde é explicado ou posso deduzi-lo.

Alguém pode expandir esse tópico? Vai ser muito apreciado.

    
por user2984629 25.02.2014 / 13:15

2 respostas

0

Na seção "PARÂMETROS" em man bash , consulte

In the context where an assignment statement is assigning a value to a shell variable or array index, the += operator can be used to append to or add to the variable's previous value. When += is applied to a variable for which the integer attribute has been set, value is evaluated as an arithmetic expression and added to the variable's current value, which is also evaluated. When += is applied to an array variable using compound assignment (see Arrays below), the variable's value is not unset (as it is when using =), and new values are appended to the array beginning at one greater than the array's maximum index (for indexed arrays) or added as additional key-value pairs in an associative array.

    
por 25.02.2014 / 13:22
0

Apenas um link onde encontrei um exemplo do que explicou no homem bash. Procure por "Configuração de massa individual para matrizes associativas. Os índices nomeados (aqui: S1 e S2) são cadeias de caracteres."

    
por 27.02.2014 / 12:31

Tags