Considere una Situación si queremos almacenar 1000 números y realizar operaciones sobre ellos. Si usamos el concepto de variable simple, entonces tenemos que crear 1000 variables y realizar operaciones en ellas. Pero es difícil manejar una gran cantidad de variables. Por lo tanto, es bueno almacenar el mismo tipo de valores en la array y luego acceder a través del número de índice.
Array en Shell Scripting
Un array es un arreglo sistemático del mismo tipo de datos. Pero en Shell script Array es una variable que contiene múltiples valores que pueden ser del mismo tipo o de diferente tipo, ya que por defecto en Shell script todo se trata como una string. Una array se basa en cero, es decir, la indexación comienza con 0.
¿Cómo declarar Array en Shell Scripting?
Podemos declarar una array en un script de shell de diferentes maneras.
1. Declaración
indirecta En la declaración indirecta, asignamos un valor en un índice particular de variable de array. No es necesario declarar primero.
ARRAYNAME[INDEXNR]=value
2. Declaración
explícita En la declaración explícita, primero declaramos la array y luego asignamos los valores.
declare -a ARRAYNAME
3. Asignación compuesta
En Asignación compuesta, declaramos una array con un montón de valores. También podemos agregar otros valores más tarde.
ARRAYNAME=(value1 value2 .... valueN)
o
[númeroíndice=]string
ARRAYNAME=([1]=10 [2]=20 [3]=30)
¿Para imprimir el valor de array en Shell Script?
Imprimir todos los elementos [@]
y [*]
significa todos los elementos de la array.
echo ${ARRAYNAME[*]}
#! /bin/bash # To declare static Array arr=(prakhar ankit 1 rishabh manish abhinav) # To print all elements of array echo ${arr[@]} echo ${arr[*]} echo ${arr[@]:0} echo ${arr[*]:0}
Producción:
prakhar ankit 1 rishabh manish abhinav prakhar ankit 1 rishabh manish abhinav prakhar ankit 1 rishabh manish abhinav prakhar ankit 1 rishabh manish abhinav
Para imprimir el primer elemento
# To print first element echo ${arr[0]} echo ${arr}
Producción:
prakhar prakhar
Para imprimir el elemento de índice seleccionado
echo ${ARRAYNAME[INDEXNR]}
# To print particular element echo ${arr[3]} echo ${arr[1]}
Producción:
rishabh ankit
Para imprimir elementos de un índice particular
echo ${ARRAYNAME[WHICH_ELEMENT]:STARTING_INDEX}
# To print elements from a particular index echo ${arr[@]:0} echo ${arr[@]:1} echo ${arr[@]:2} echo ${arr[0]:1}
Producción:
prakhar ankit 1 rishabh manish abhinav ankit 1 rishabh manish abhinav 1 rishabh manish abhinav prakhar
Para imprimir elementos en rango
echo ${ARRAYNAME[WHICH_ELEMENT]:STARTING_INDEX:COUNT_ELEMENT}
# To print elements in range echo ${arr[@]:1:4} echo ${arr[@]:2:3} echo ${arr[0]:1:3}
Producción:
ankit 1 rishabh manish 1 rishabh manish rak
Para contar la longitud de en array
Para contar la longitud de un elemento particular en Array.
Use # (hash) para imprimir la longitud de un elemento en particular
# Length of Particular element echo ${#arr[0]} echo ${#arr}
Producción:
7 7
Para contar la longitud de Array.
# Size of an Array echo ${#arr[@]} echo ${#arr[*]}
Producción:
6 6
Para buscar en array
arr[@]
: Todos los elementos de la array. /Search_using_Regular_Expression/
: Buscar en Array
Search Devuelve 1 si encontró el patrón; de lo contrario, devuelve cero. No altera los elementos originales de la array.
# Search in Array echo ${arr[@]/*[aA]*/}
Producción:
1
Para buscar y reemplazar en array
//Search_using_Regular_Expression/Replace
: Buscar y reemplazar
Buscar y reemplazar no cambia en el valor original del elemento de array. Simplemente devolvió el nuevo valor. Entonces puede almacenar este valor en la misma variable o en una diferente.
# Replacing Substring Temporary echo ${arr[@]//a/A} echo ${arr[@]} echo ${arr[0]//r/R}
Producción:
prAkhAr Ankit 1 rishAbh mAnish AbhinAv prakhar ankit 1 rishabh manish abhinav RakhaR
¿Para eliminar la variable de array en Shell Script?
Para eliminar el elemento índice-1
unset ARRAYNAME[1]
Para eliminar toda la array
unset ARRAYNAME
#! /bin/bash # To declare static Array arr=(prakhar ankit 1 rishabh manish abhinav) # To print all elements of array echo ${arr[@]} # prakhar ankit 1 rishabh manish abhinav echo ${arr[*]} # prakhar ankit 1 rishabh manish abhinav echo ${arr[@]:0} # prakhar ankit 1 rishabh manish abhinav echo ${arr[*]:0} # prakhar ankit 1 rishabh manish abhinav # To print first element echo ${arr[0]} # prakhar echo ${arr} # prakhar # To print particular element echo ${arr[3]} # rishabh echo ${arr[1]} # ankit # To print elements from a particular index echo ${arr[@]:0} # prakhar ankit 1 rishabh manish abhinav echo ${arr[@]:1} # ankit 1 rishabh manish abhinav echo ${arr[@]:2} # 1 rishabh manish abhinav echo ${arr[0]:1} # rakhar # To print elements in range echo ${arr[@]:1:4} # ankit 1 rishabh manish echo ${arr[@]:2:3} # 1 rishabh manish echo ${arr[0]:1:3} # rak # Length of Particular element echo ${#arr[0]} # 7 echo ${#arr} # 7 # Size of an Array echo ${#arr[@]} # 6 echo ${#arr[*]} # 6 # Search in Array echo ${arr[@]/*[aA]*/} # 1 # Replacing Substring Temporary echo ${arr[@]//a/A} # prAkhAr Ankit 1 rishAbh mAnish AbhinAv echo ${arr[@]} # prakhar ankit 1 rishabh manish abhinav echo ${arr[0]//r/R} # pRakhaR
Producción:
prakhar ankit 1 rishabh manish abhinav prakhar ankit 1 rishabh manish abhinav prakhar ankit 1 rishabh manish abhinav prakhar ankit 1 rishabh manish abhinav prakhar prakhar rishabh ankit prakhar ankit 1 rishabh manish abhinav ankit 1 rishabh manish abhinav 1 rishabh manish abhinav rakhar ankit 1 rishabh manish 1 rishabh manish rak 7 7 6 6 1 prAkhAr Ankit 1 rishAbh mAnish AbhinAv prakhar ankit 1 rishabh manish abhinav pRakhaR
Referencia:
https://www.tecmint.com/working-with-arrays-in-linux-shell-scripting/
Publicación traducida automáticamente
Artículo escrito por prakhargvp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA