Esta é uma matriz?

2

Atualmente, estou vendo um script existente com algo parecido com isto:

variable='val1 val2 val3 val4'

Isso é outra maneira de definir uma matriz? Se não, o que é isso?

    
por erin00 28.01.2014 / 03:09

2 respostas

2

Esta é uma variável com uma string atribuída a ela.

variable='val1 val2 val3 val4'

Você pode dizer que é uma string quando a enviamos usando echo :

$ echo $variable
val1 val2 val3 val4

Exemplo de uma matriz

Para definir essa série de elementos como uma matriz, você pode fazer o seguinte:

$ variable=(val1 val2 val3 val4)

Quando você ecoa as variáveis que são definidas como arrays, você terá apenas o primeiro elemento retornado, assim:

$ echo $variable
val1

Para ver elementos específicos na matriz, você pode fornecer um índice:

$ echo ${variable[0]}
val1
$ echo ${variable[2]}
val3

Ou todos eles:

$ echo ${variable[@]}
val1 val2 val3 val4
    
por 28.01.2014 / 03:52
1

Isso não é uma matriz. Para criar isso como uma matriz, você usaria

set -A variable val1 val2 val3 val4

que atribui val1 à variável [0] e assim por diante.

O que você tem parece ser apenas valores unidos por espaços ( ) em uma única string.

    
por 28.01.2014 / 03:24