Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| linux:bash:arrays [21/05/2018 03:01] – [arrays bash] mate | linux: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 | ||
| - | {{tag> | + | ~~NOTOC~~ |
| + | {{tag> | ||
| /via: [[http:// | /via: [[http:// | ||
| + | |||
| + | <callout type=" | ||
| + | hackers.org/ | ||
| + | <callout type=" | ||
| + | |||
| + | == declaración e inicialización | ||
| + | <code bash; indices numéricos> | ||
| + | declare -a array=(valor0 'valor uno' 'valor dos') | ||
| + | </ | ||
| + | <code bash; asociativo> | ||
| + | declare -A array=( [indice1]=valor0 [indice2]=' | ||
| + | # es necesario una versión 4+ de BASH para disponer de Arrays asociativos | ||
| + | </ | ||
| + | |||
| == declaración y asignación | == declaración y asignación | ||
| Línia 15: | Línia 28: | ||
| </ | </ | ||
| - | == inicialización durante declaración | + | == + asignaciones |
| <code bash> | <code bash> | ||
| - | declare -a array=(valor0 'valor uno' 'valor dos') | + | array[n]=valor |
| + | array[cadena]=valor | ||
| + | array=valor # se asigna al índice 0 (en asociativos, | ||
| + | array=(valor1 valor2 valor3) | ||
| + | array=([0]=valor1 1=valor2 2=valor3) | ||
| + | array=([cadena]=valor1 [cadena2]=valor2) | ||
| + | array+=(valor5 valor6) # añade | ||
| + | array=(" | ||
| </ | </ | ||
| - | == mostar array/ | + | == recuperación |
| - | * todo el array: '' | + | ^Sintaxis ^ Descripción ^ |
| + | | **${ARRAY[N]}** | recupera el elemento N | | ||
| + | | **${ARRAY[S]}** | recupera el elemento S en arrays **asociativos** | | ||
| + | | **" | ||
| + | | **${ARRAY[@]}** | ::: | | ||
| + | | ** " | ||
| + | | **${ARRAY[*]}** | ::: | | ||
| + | | **" | ||
| + | | **${ARRAY[@]: | ||
| + | | **" | ||
| + | | **${ARRAY[*]: | ||
| + | |||
| + | === mostar array/ | ||
| + | * todo el array: '' | ||
| * un elemento: '' | * un elemento: '' | ||
| * del elemento n al m: '' | * del elemento n al m: '' | ||
| * del elemento n, subcadena a-b: '' | * del elemento n, subcadena a-b: '' | ||
| + | * todos los items del array: '' | ||
| + | * todos los índices del array: | ||
| + | * número de items: | ||
| + | * vía: [[http:// | ||
| + | |||
| + | <button collapse=" | ||
| + | |||
| + | < | ||
| + | |||
| + | ^Syntax ^Description ^ | ||
| + | | **${ARRAY[N]}** | Expands to the value of the index '' | ||
| + | | **${ARRAY[S]}** | Expands to the value of the index '' | ||
| + | | **" | ||
| + | | **" | ||
| + | |||
| + | </ | ||
| + | == metadata | ||
| + | ^ Syntaxis ^Descripción ^ | ||
| + | |**${# | ||
| + | |**${# | ||
| + | |**${# | ||
| + | |**${!ARRAY[@]}**\\ **${!ARRAY[*]}**| Extrae los índices del array, @ elemento a elemento, %%*%% en un bloque (desde BASH 3.0)| | ||
| - | == longitud | + | === longitud |
| * del array: '' | * del array: '' | ||
| * del primer elemento: '' | * del primer elemento: '' | ||
| * del tercero: '' | * del tercero: '' | ||
| + | |||
| + | <button collapse=" | ||
| + | |||
| + | < | ||
| + | |||
| + | ^Syntax ^Description ^ | ||
| + | |**${# | ||
| + | |**${# | ||
| + | |**${# | ||
| + | |**${!ARRAY[@]}**\\ **${!ARRAY[*]}**|Expands to the **indexes** in **ARRAY** since BASH 3.0| | ||
| + | |||
| + | </ | ||
| + | |||
| + | == destrucción | ||
| + | The [[commands/ | ||
| + | |||
| + | ^Syntax ^Description ^ | ||
| + | |'' | ||
| + | |'' | ||
| + | |'' | ||
| + | |||
| + | usar siempre comillas para encerrar la variable para evitar problemas con las variables glob | ||
| == adición / eliminación / sustitución elementos | == adición / eliminación / sustitución elementos | ||
| Línia 42: | Línia 119: | ||
| == cargar contenido de un fichero | == cargar contenido de un fichero | ||
| * '' | * '' | ||
| - | |||
| - | == funky constructs | ||
| - | * todos los items del array: '' | ||
| - | * todos los índices del array: | ||
| - | * número de items: | ||
| - | * vía: [[http:// | ||
| == ejemplos | == ejemplos | ||
| Línia 80: | Línia 151: | ||
| arr=(" | arr=(" | ||
| - | echo "After @ quoted expansion: ${#arr[*]}" | + | echo "After @ quoted expansion: ${#arr[@]}" |
| for ix in ${!arr[*]} | for ix in ${!arr[*]} | ||
| do | do | ||