linux:bash:arrays

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:bash:arrays [09/10/2018 03:45] – [recuperación] matelinux:bash:arrays [09/10/2018 04:48] (actual) – [declaración e inicialización] mate
Línia 1: Línia 1:
-~~NOTOC~~ 
- 
 = arrays bash = arrays bash
 +~~NOTOC~~
 {{tag>linux bash pendiente wiki}} {{tag>linux bash pendiente wiki}}
 /via: [[http://www.thegeekstuff.com/2010/06/bash-array-tutorial/]] /via: [[http://www.thegeekstuff.com/2010/06/bash-array-tutorial/]]
  
-<callout type="info" title="más información de interés (arrays indirection)" icon="true">http://wiki.bash-hackers.org/syntax/arrays?rev=1534920675</callout>+<callout type="info" title="más información de interés (arrays indirection)" icon="true">http://wiki.bash- 
 +hackers.org/syntax/arrays?rev=1534920675</callout> 
 +<callout type="info" title="más información de interés (arrays asociativos)" icon="true">https://www.artificialworlds.net/blog/2012/10/17/bash-associative-array-examples/</callout> 
 + 
 +== declaración e inicialización 
 +<code bash; indices numéricos> 
 +declare -a array=(valor0 'valor uno' 'valor dos'
 +</code> 
 +<code bash; asociativo> 
 +declare -A array=( [indice1]=valor0 [indice2]='valor uno' [indice3]='valor dos'
 +# es necesario una versión 4+ de BASH para disponer de Arrays asociativos 
 +</code> 
  
 == declaración y asignación == declaración y asignación
Línia 15: Línia 26:
 array[1]='valor uno' array[1]='valor uno'
 array[2]='valor dos' array[2]='valor dos'
-</code> 
- 
-== inicialización durante declaración 
-<code bash> 
-declare -a array=(valor0 'valor uno' 'valor dos') 
 </code> </code>
  
Línia 46: Línia 52:
 | **"${ARRAY[*]:N:M}"** | ::: | | **"${ARRAY[*]:N:M}"** | ::: |
 | **${ARRAY[*]:N:M}** | ::: | | **${ARRAY[*]:N:M}** | ::: |
 +
 +=== mostar array/elementos/subcadenas
 +  * todo el array: ''echo ${array[@]}''
 +  * un elemento: ''echo ${array[n]}''
 +  * del elemento n al m: ''echo ${array[@]:n:m}''
 +  * del elemento n, subcadena a-b: ''echo ${array[n]:a:b}''
 +  * todos los items del array: ''${array[*]}''
 +  * todos los índices del array:  ''${!array[*]}''
 +  * número de items:  ''${#array[*]}''
 +  * vía: [[http://www.linuxjournal.com/content/bash-arrays]]
  
 <button collapse="original-recuperacion" size="xs">original</button> <button collapse="original-recuperacion" size="xs">original</button>
Línia 60: Línia 76:
 == metadata == metadata
 ^ Syntaxis ^Descripción ^ ^ Syntaxis ^Descripción ^
-|''${#ARRAY[N]}'' | Longitud del elemento N | +|**${#ARRAY[N]}** | Longitud del elemento N | 
-|''${#ARRAY[STRING]}'' | idem en **asociativo** | +|**${#ARRAY[STRING]}** | idem en **asociativo** | 
-|''${#ARRAY[@]}''\\ ''${#ARRAY[*]}''| Número de elementos | +|**${#ARRAY[@]}**\\ **${#ARRAY[*]}**| Número de elementos | 
-|''${!ARRAY[@]}''\\ ''${!ARRAY[*]}''| Extrae los índices del array, @ elemento a elemento, %%*%% en un bloque (desde BASH 3.0)|+|**${!ARRAY[@]}**\\ **${!ARRAY[*]}**| Extrae los índices del array, @ elemento a elemento, %%*%% en un bloque (desde BASH 3.0)|
  
 +=== longitud
 +  * del array: ''echo ${#array[@]}''
 +  * del primer elemento: ''echo ${#array}''
 +  * del tercero: ''echo ${#array[2]}''
 +
 +<button collapse="original-metadata" size="xs">original</button>
 +
 +<collapse id="original-metadata" collapsed="true">
  
 ^Syntax ^Description ^ ^Syntax ^Description ^
-|''${#ARRAY[N]}'' |Expands to the **length** of an individual array member at index ''N'' (**stringlength**) | +|**${#ARRAY[N]}** |Expands to the **length** of an individual array member at index **N** (**stringlength**) | 
-|''${#ARRAY[STRING]}'' | Expands to the **length** of an individual associative array member at index ''STRING'' (**stringlength**) | +|**${#ARRAY[STRING]}** | Expands to the **length** of an individual associative array member at index **STRING** (**stringlength**) | 
-|''${#ARRAY[@]}''\\ ''${#ARRAY[*]}''|Expands to the **number of elements** in ''ARRAY'' +|**${#ARRAY[@]}**\\ **${#ARRAY[*]}**|Expands to the **number of elements** in **ARRAY** 
-|''${!ARRAY[@]}''\\ ''${!ARRAY[*]}''|Expands to the **indexes** in ''ARRAY'' since BASH 3.0|+|**${!ARRAY[@]}**\\ **${!ARRAY[*]}**|Expands to the **indexes** in **ARRAY** since BASH 3.0| 
 + 
 +</collapse>
  
 == destrucción == destrucción
Línia 81: Línia 107:
  
 usar siempre comillas para encerrar la variable para evitar problemas con las variables glob usar siempre comillas para encerrar la variable para evitar problemas con las variables glob
-== mostar array/elementos/subcadenas 
-  * todo el array: ''echo ${array[@]}'' 
-  * un elemento: ''echo ${array[n]}'' 
-  * del elemento n al m: ''echo ${array[@]:n:m}'' 
-  * del elemento n, subcadena a-b: ''echo ${array[n]:a:b}'' 
- 
-== longitud 
-  * del array: ''echo ${#array[@]}'' 
-  * del primer elemento: ''echo ${#array}'' 
-  * del tercero: ''echo ${#array[2]}'' 
  
 == adición / eliminación / sustitución elementos == adición / eliminación / sustitución elementos
Línia 103: Línia 119:
 == cargar contenido de un fichero == cargar contenido de un fichero
   * ''array=(` cat file `)''   * ''array=(` cat file `)''
- 
-== funky constructs 
-  * todos los items del array: ''${array[*]}'' 
-  * todos los índices del array:  ''${!array[*]}'' 
-  * número de items:  ''${#array[*]}'' 
-  * vía: [[http://www.linuxjournal.com/content/bash-arrays]] 
  
 == ejemplos == ejemplos
  • linux/bash/arrays.1539081910.txt.gz
  • Darrera modificació: 09/10/2018 03:45
  • per mate