array 09.04.2020 Linux

1. definición de matriz

$ A = ( 1  2  3  4  5  6 ) 
$ echo $ a 
1

Nota: los elementos de matriz separados por espacios, sin espacios = ambos lados, ECHO $ ​​a sólo devuelve el primer elemento de la matriz

2. Matriz tarea de lectura

2.1 Obtiene una matriz de longitud

$ echo ${#a[@]}
6

Con el nombre de la matriz $ {# [@ o *]} puede ser una matriz de longitud

2.2 Obtiene una matriz de elementos

$ echo ${a[0]}
1
$ echo ${a[*]}
1 2 3 4 5 6

Nota: subíndice es * o @ recupera todos los elementos

2.3 Asignación

$ a[1]=11
$ a[3]=33
$ echo ${a[@]}
1 11 2 33 4 5 6

Nota: Si no existe el índice, añadir automáticamente un nuevo elemento de la matriz,

2.4 Extracción de elementos

$ A = ( 1  2  3  4  5 ) 
remover $ un 
$ echo $ {a [* ]} 
$ a = ( 1  2  3  4  5 ) 
remover $ a [ 1 ] 
$ echo $ {a [* ]}
 1  3  4  5 
$ echo $ {# a [* ]}
 4

Directamente a través de: array unset [índice] para borrar los elementos correspondientes, no subíndices, borra todos los datos.

 3. Uso especial

fragmento de 3,1

$ a=(1 2 3 4 5)
$ echo ${a[*]:1:3}
2 3 4
$ b=(${a[*]:2:9})
$ echo ${b[*]}
3 4 5
$ c = ${a[*]:2:9}
$ echo $c
3 4 5

Directamente a través de la nombre de la matriz $ {[@ o *]: Posición inicial: longitud} rebana lista original, devuelve una cadena, un "espacio" intermedio se separa, si es así con "()", y la rebanada matriz resultante, el ejemplo anterior : b es una nueva matriz, y c es una cadena

Nota: Si la longitud especificada es mayor que la propia matriz, para tomar sólo el último elemento de la matriz, el error no lo hará

reemplazar 3.2

$ a=(1 2 3 4 5)
$ echo ${a[*]/3/33}
1 2 33 4 5
$ echo ${a[*]}
1 2 3 4 5
$ a=(${a[*]/3/33})
$ echo ${a[*]}
1 2 33 4 5

Llamar al método es: $ {nombre de la matriz [@ o *] / personajes encuentran / reemplazar caracteres} Esta operación no altera el contenido original de la matriz

 

Nota: el reemplazo de una operación más fan

$ A = ( 12  222  345 ) 
$ echo $ {a [*] / 2 / 88 }
 188  8822  345 
$ b = ($ {a [*] / 2 / 88 }) 
$ eco {b [* ]}
 188  8822  345 
$ echo $ {b [*] / 2 / 88 }
 188  88 882  345
Donde cada elemento en la búsqueda son entonces de nuevo sustituye, y la sustitución sólo una vez, tal como una [2] 222, sólo se convierte sustituye al anterior 8822,

 

Supongo que te gusta

Origin www.cnblogs.com/cxl-blog/p/12670263.html
Recomendado
Clasificación