matriz de Shell
La matriz puede almacenar varios valores. Bash sólo es compatible con matrices unidimensionales (no admite matrices multidimensionales), se inicializa hay necesidad de definir el tamaño de la matriz (similares a PHP).
Como la mayoría de los lenguajes de programación, el subíndice de elementos de matriz a partir de cero.
Shell utilizar paréntesis para indicar un elemento de conjunto con el símbolo de "espacio" separado, la sintaxis es la siguiente:
array_name=(value1 ... valuen)
Ejemplos
#!/bin/bash # author:本教程 # url:www.w3big.com my_array=(A B "C" D)
También podemos definir matrices utilizando la siguiente norma:
array_name[0]=value0 array_name[1]=value1 array_name[2]=value2
Lee matriz
El formato general se lee el valor de elemento de matriz:
${array_name[index]}
Ejemplos
#!/bin/bash # author:本教程 # url:www.w3big.com my_array=(A B "C" D) echo "第一个元素为: ${my_array[0]}" echo "第二个元素为: ${my_array[1]}" echo "第三个元素为: ${my_array[2]}" echo "第四个元素为: ${my_array[3]}"
Ejecutar la secuencia de comandos, la salida es el siguiente:
$ chmod +x test.sh $ ./test.sh 第一个元素为: A 第二个元素为: B 第三个元素为: C 第四个元素为: D
Obtiene una matriz de todos los elementos
Utilizar el @ o * puede obtener una matriz de todos los elementos, tales como:
#!/bin/bash # author:本教程 # url:www.w3big.com my_array[0]=A my_array[1]=B my_array[2]=C my_array[3]=D echo "数组的元素为: ${my_array[*]}" echo "数组的元素为: ${my_array[@]}"
Ejecutar la secuencia de comandos, la salida es el siguiente:
$ chmod +x test.sh $ ./test.sh 数组的元素为: A B C D 数组的元素为: A B C D
Obtener longitud de la matriz
Obtiene una matriz de tramos de longitud de la cadena y obtener la misma manera, por ejemplo:
#!/bin/bash # author:本教程 # url:www.w3big.com my_array[0]=A my_array[1]=B my_array[2]=C my_array[3]=D echo "数组元素个数为: ${#my_array[*]}" echo "数组元素个数为: ${#my_array[@]}"
Ejecutar la secuencia de comandos, la salida es el siguiente:
$ chmod +x test.sh $ ./test.sh 数组元素个数为: 4 数组元素个数为: 4