Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Arreglos

23/43
Recursos

Los Arreglos son un tipo de variables que puede contener N cantidad de valores ya sean cadenas de texto, numéricos, etc. Estos siempre empiezan desde la posición número 0.

Aportes 28

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Si escucho la palabra tema una vez más me va a dar una embolia

Para cambiar el color en vim ingresar :colorscheme y el nombre del esquema de color. Por ejemplo

:colorscheme desert

Para obtener la lista de esquemas de color instalador, ingresar :colorscheme, espacio y Ctrl + D.

Para establecer el esquema de color por defecto , editar el archivo .vimrc y agregar una linea colorscheme desert

El tema de su muletilla “El tema” me estresa mucho 😣

Aquí les dejo el esquema de colores de Atom para vim:
https://github.com/joshdick/onedark.vim

Si quieren poder autocompletado:
https://github.com/ycm-core/YouCompleteMe

Y para manejar plugins con facilidad:
https://github.com/VundleVim/Vundle.vim

Les dejo un resumen de la clase:

Los Arreglos son un tipo de variables que puede contener N cantidad de valores ya sean cadenas de texto, numéricos, etc. Estos siempre empiezan desde la posición número 0.

  • Se declaran entre paréntesis y cada elemento se separa por un espacio.
  • En caso de texto se separa por una coma.
  • Un elemento puede ser una cadena de elementos que forman un rango y se declara entre llaves: {A…J} {10…20}. Escribir estos rangos juntos genera una operación distinta, que es iterar cada elemento del primer rango con cada elementos del segundo rango.
  • Para añadir valores: arregloNombre[posicion]=valor
  • Para quitar algún elemento: unset arregloNombre[posición]
  • Para imprimir todos los valores: echo “ ${arregloNombre[*]} ”
  • Para imprimir el tamaño: echo “ ${#arregloNombre[*]} ”
  • Para imprimir el valor en X posición: echo “ ${arregloNombre[X]} ”

Cual sera el “tema” de Pedro y el “tema” de Susana 😮

¿cómo es que es el asunto? dice corchetes y escribe paréntesis, dice llaves y escribe corchetes, dice corchetes y escribe corchetes… así es complicado escuchar lo que dice mientras escribe otra cosa.
Equipo de success, si hacen seguimiento a estos cursos antes de ser lanzados, ojo con esos detalles.

Mi aporte de hoy

# imprimir todos los valores
echo "Arreglo de Números: ${arregloNumeros[*]}" 

# imprime tamaño de los arreglos
echo "Tamaño del arreglo de Números: ${#arregloNumeros[*]}" 

# imprimir las la posicion 3 de los arreglos
echo "Posición 3 del arreglo de Números: ${arregloNumeros[3]}" 

# imprimir los indeces de los arreglos
echo "Indeces de los arreglo de Números: ${!arregloNumeros[@]}" 
# para este caso @ funciona igual que *

Poderoso el manejo de arreglos es bash.

una duda:

el numero 20 no se debio insertar en la posicion 6? ya que se empieza a contar desde 0.

#!/bin/bash

numbers_array=(1 2 3 4 5 6)
strings_array=(Marco, Antonio, Pedro, Susana)
ranges_array=({A..Z} {10..20})

echo "Numbers array: ${numbers_array[*]}"
echo "Strings array: ${strings_array[*]}"
echo "Ranges array: ${ranges_array[*]}"

echo "Numbers array size: ${#numbers_array[*]}"
echo "Strings array size: ${#strings_array[*]}"
echo "Ranges array size: ${#ranges_array[*]}"

echo "Third position of numbers array: ${numbers_array[2]}"
echo "Third position of strings array: ${strings_array[2]}"
echo "Third position of ranges array: ${ranges_array[2]}"

numbers_array[7]=20
unset numbers_array[0]
echo "Numbers array: ${numbers_array[*]}"
echo "Numbers array size: ${#numbers_array[*]}"

Hola… les dejo mi script…

# ! /bin/bash
# Programa para uso de arreglo
# Author: Diego Beltran histagram @diegodevelops

arregloNum=(1 2 3 4 5 6)
arregloString=(Diego, Andres, Mariana, Beatriz)
arregloRango=({A..Z} {10..20})

#imprimir valores
echo "Arreglo números: ${arregloNum[*]}"
echo "Arreglo cadenas: ${arregloString[*]}"
echo "Arreglo rangos: ${arregloRango[*]}"

#imprimiendo y tamaños

echo "Tamaño Arreglo números: ${#arregloNum[*]}"
echo "Tamaño Arreglo cadenas: ${#arregloString[*]}"
echo "Tamaño Arreglo rangos: ${#arregloRango[*]}"

#imprimir la posición 3 del los arreglos

echo "Pos 3 Arreglo números: ${arregloNum[3]}"
echo "Pos 3 Arreglo cadenas: ${#arregloString[3]}"
echo "Pos 3 Arreglo rangos: ${#arregloRango[3]}"

#Añadir y eliminar valores en un arreglo

arregloNum[7]=20
unset arregloNum[0]
echo "Arreglo numeros: ${arregloNum[*]}"
echo "Tamaño arreglo numeros: ${#arregloNum[*]}"```

Saludos

La clase está bien, pero creo que, el tanto hablar no hace las cosas más explicativas, mientras más simple y concreta sea la explicación que se brinde, mejor será el entendimiento que se demuestra y mejor la información que se puede compartir.

#!/bin/bash

Array1=(1 2 3 4 5 6)
String1=(perro, gato, caballo, canario)
Rank1=({A…Z} {10…20})

#Vista
echo -e "\n------->"
echo -e "Array: ${Array1[]}"
echo -e "\nString: ${String1[]}"
echo -e “\nRank: ${Rank1[*]}\n”

#Sizes
echo -e "\n------->"
echo -en "Array: ${#Array1[]}"
echo -en "\nString: ${#String1[]}"
echo -en “\nRank: ${#Rank1[*]}\n”

#Positions
echo -e "\n------->"
echo -en "Vista en position [3]:"
echo -en “\nArray: ${Array1[3]}\nString: ${String1[3]}\nRank: ${Rank1[3]}\n”

#Set Value:
echo -e "\n------->"
Array1[7]=20; unset Array1[0]
echo -en "Se elimina la posicion [0] en Array: ${Array1[]}"
echo -en "\nNuevo Array: ${Array1[]}"
echo -en “\nNueva longitud del Array: ${#Array1[*]}\n\n”

Arrays Bash-Scripting Guide

He visto varios comentando que el “tema” de la muletilla -guiño, guiño- no debería importarnos. Por supuesto, todos podemos tener muletillas, pero más allá de la (innecesaria) corrección política, cuando se es docente se comunica y si hay algo que distrae o bloquea la efectiva comunicación, entonces hay que trabajar para mejorarlo, máxime cuando es tan marcado.

Comparto el tema de mi codigo sobre el tema de arreglos

#!/bin/bash
# Programa para el tema de los arreglos
# Autor: Milo

arregloNumeros=(1 2 3 4 5 6)
arregloCadenas=(Juan, Pedro, Susana, Bog, Fusa, Zipa)
arregloRangos=({A..G} {10..20})

#imprimiré todos los valores
echo "Arreglo del tema de Números: ${arregloNumeros[*]}"
echo "Arreglo del tema de Cadenas: ${arregloCadenas[*]}"
echo "Arreglo del tema de Rangos: ${arregloRangos[*]}"

#imrimiré el tamaño de los arreglso
echo "Tamaño Arreglo de Números: ${#arregloNumeros[*]}"
echo "Tamaño Arreglo de Cadenas: ${#arregloCadenas[*]}"
echo "Tamaño Arreglo de Rangos: ${#arregloRangos[*]}"

#>Imprimri las posicion 2 de cada uno
echo "posición 3 Arreglo de Números: ${arregloNumeros[3]}"
echo "posición 3 Arreglo de Cadenas: ${arregloCadenas[3]}"
echo "posición 3 Arreglo de Rangos: ${arregloRangos[3]}"

#añadir y elminar valores de un arreglo.
arregloNumeros[7]=20
unset arregloNumeros[0]
echo "Arreglo de Números: ${arregloNumeros[*]}"
echo "Tamaño Arreglo de Números: ${#arregloNumeros[*]}"
echo "posición 7 Arreglo de Números: ${arregloNumeros[7]}"

Hincapié:

Array[index]=value # Agregar valores
unset Array[index]  # Eliminar valores

Script escrito y probado en Ubuntu 18.04
5 array_fib=(1 1 2 3 5 8)
6 array_chain=(“first” “second” “third” “fourth” “fifth” “sixth”)

<h1>array_chain=(first, second, third, fourth, fifth, sixth)</h1> <h1>Las 2 líneas de cadenas de array_chain funcionan ok</h1>

7 array_range=([a…z] [0…9])
8
9 #Print the values of all arrays
10 echo "Array of fib: ${array_fib[]}"
11 #show the values in separated lines
12 echo "Array of chain: ${array_chain[@]}"
13 #show the values in the same lines
14 echo "Array of range: ${array_range[
]}"
15
16 #Print the length of all arrays
17 echo "Length of array of fib: ${#array_fib[]}"
18 echo "Length of array of chain: ${#array_chain[
]}"
19 echo "Length of array of range: ${#array_range[]}"
20
21 #Print the value in pos ‘1’ of all arrays
22 echo "Value in position 1 of array of fib: ${array_fib[1]}"
23 echo "Value in position 1 of array of chain: ${array_chain[1]}"
24 echo "Value in position 1 of array of range: ${array_range[1]}"
25
26 #Eliminate the last value in array
27 unset array_fib[5]
28 unset array_chain[5]
29 unset array_range[1]
30 echo -e ""
31
32 echo -e "All arrays updated with the last value erased in each of$
33 #Print the values of all arrays
34 echo "Array of fib: ${array_fib[
]}"
35 #show the values in separated lines
36 echo "Array of chain: ${array_chain[@]}"
37 #show the values in the same lines
38 echo “Array of range: ${array_range[*]}”

Todos los elementos del arreglo
${arreglo[*]}
Tamaño del arreglo
${#arreglo[*]}
Un elemento del arreglo
${arreglo[posición]}
Ingresar un elemento al arreglo
arreglo[posición]=elemento
Eliminar un elemento del arreglo
unset arreglo[posición]

En Fish shell:

set -l intArray 1 2 3  # Literales (enteros)
set -l stringArray Uno Dos Tres  # Literales (cadenas de caracteres)
set -l rangeArray (seq 1 10) (seq 65 90 | awk '{printf("%c\n",$1)}')  # Rangos

echo "Longitud de arreglo de enteros: "(count $intArray)  # 3
echo "Longitud de arreglo de cadenas de caracteres: "(count $stringArray) # 3
echo "Longitud de arreglo de enteros: "(count $rangeArray)  # 36

echo "Acceso por índice: $intArray[1]"  # 1
echo "Acceso por índice multiple: $rangeArray[3 11 36]"  # 3 A Z
echo "Acceso por rango: $stringArray[2..3]"  # Dos Tres
echo "Acceso por rango inverso: $stringArray[3..2]"  # Tres Dos

gracias

Buenas noches, disculpen alguien podría facilitarme el link del repositorio de Git Hub de este curso.
Gracias

Entendido

#!/bin/bash
# Programa para utilziat arreglos
# DBZ


arregloNumeros=(1 2 3 4 5 6)
arregloCadenas=(Ana, Isabela, Diana, David)
arregloRangos=({A..z} {1..20})

#Imprimir todos los valores
echo "Arreglo de Números:${arregloNumeros[*]}"
echo "Arreglo de Cadenas:${arregloCadenas[*]}"
echo "Arreglo de Números:${arregloRangos[*]}"

#Imprimir los tamaños de los arreglos
echo "Tamaño Arreglo de Números:${#arregloNumeros[*]}"
echo "Tamaño Arreglo de Cadenas:${#arregloCadenas[*]}"
echo "Tamaño Arreglo de Números:${#arregloRangos[*]}"

#Imprimir la posición 3 del arreglo de números, cadenas de rango
echo "Posición 3 Arreglo de Números:${arregloNumeros[3]}"
echo "Posición 3 Arreglo de Cadenas:${arregloCadenas[3]}"
echo "Posición 3 Arreglo de Rangos:${arregloRangos[3]}"

#Añadir y eliminar valores en un arreglo
arregloNumeros[7]=20
unset arregloNumeros[0]
echo "Arreglo de Números:${arregloNumeros[*]}"
echo "Tamaño arreglo de Números:${#arregloNumeros[*]}"

Agregué un par de variantes como agregar un elemento al final sin saber cuál es el índice del último elemento.

#!/bin/bash
# Programa para ejemplificar el uso de los arreglos

arregloNumeros=(1 2 3 4 5)
arregloCadenas=(Juan, Pedro, Luis, Alex)
arregloRangos=({A..Z} {10..20})

#imprimir todos los valores
echo "Arreglo de Números: ${arregloNumeros[*]}"
echo "Arreglo de Cadenas: ${arregloCadenas[*]}"
echo "Arreglo de Rangos: ${arregloRangos[*]}"

#Imprimir los tamaños de los arreglos
echo "Tamaño de Arreglo de Números: ${#arregloNumeros[*]}"
echo "Tamaño de Arreglo de Cadenas: ${#arregloCadenas[*]}"
echo "Tamaño de Arreglo de Rangos: ${#arregloRangos[*]}"

#Imprimir la posición 3 de cada arreglo
echo "Posición 3 del arreglo de Números: ${arregloNumeros[3]}"
echo "Posición 3 del arreglo de Cadenas: ${arregloCadenas[3]}"
echo "Posición 3 del arreglo de Rango: ${arregloRangos[3]}"

#Añadir y eliminar valores en un arreglos
#Si la posición no es la última + 1 no pasa nada, no funciona

echo -e "\nArreglo de Números Original: ${arregloNumeros[*]}"

echo -e "\nAgrega el elemento en la posición después del último"
arregloNumeros["${#arregloNumeros[*]}"]=21
echo "Arreglo de números: ${arregloNumeros[*]}"
echo "Tamaño arreglo de Números: ${#arregloNumeros[*]}"

echo -e "\nAgrega el elemento en la posición del último, reemplazandolo"
arregloNumeros["${#arregloNumeros[*]} - 1"]=22
echo "Arreglo de números: ${arregloNumeros[*]}"
echo "Tamaño arreglo de Números: ${#arregloNumeros[*]}"

echo -e "\nAgrega el elemento en la posición que se le indique (2), reemplazándo al elemento existente"
arregloNumeros[2]=23
echo "Arreglo de números: ${arregloNumeros[*]}"
echo "Tamaño arreglo de Números: ${#arregloNumeros[*]}"

echo -e "\nAgrega el elemento en la posición después del último"
arregloNumeros["${#arregloNumeros[*]}"]=24
echo "Arreglo de números: ${arregloNumeros[*]}"
echo "Tamaño arreglo de Números: ${#arregloNumeros[*]}"

echo -e "\nElimina el elemento en la posición indicada (0)"
unset arregloNumeros[0]
echo "Arreglo de números: ${arregloNumeros[*]}"
echo "Tamaño arreglo de Números: ${#arregloNumeros[*]}"```

Seria Genial que cambiara los colores de la consola, cuesta mucho ver algunos comandos.

Así quedo mi script.

# !/bin/bash
# Programa para ejemplificar el uso de los arreglos
# Autor: Marco

arregloNumeros=(1 2 3 4 5 6)
arregloCadenas=(Marco, Antonio, Pedro, Susana)
arregloRangos=({A..Z} {10..20})

#Imprimir todos los valores
echo "Arreglo de numeros: ${arregloNumeros[*]}"
echo "Arreglo de Cadenas: ${arregloCadenas[*]}"
echo "Arreglo de Rangos: ${arregloRangos[*]}"

#Imprimir los tamaños de los arreglos
echo "Tamaño de arreglo de Numeros: ${#arregloNumeros[*]}"
echo "Tamaño de arreglo de Cadenas: ${#arregloCadenas[*]}"
echo "Tamaño de arreglo de Rangos: ${#arregloRangos[*]}"

#Imprimir la posicion 3 del arreglo de numeros, cadenas y rangos
echo "Posicion 3 del arreglo de numeros: ${arregloNumeros[3]}"
echo "Posicion 3 del arreglo de Cadenas: ${arregloCadenas[3]}"
echo "Posicion 3 del arreglo de Rangos: ${arregloRangos[3]}"

#Añadir y Eliminar valores del arreglo
arregloNumeros[7]=20
unset arregloNumeros[0]
echo "Arreglo de numeros: ${arregloNumeros[*]}"
echo "Tamaño arreglo de Numeros: ${#arregloNumeros[*]}"

El resultado:

# ! /bin/bash
# Programa para ejemplificar el uso de los arreglos
# Autor: Martin Davila

arregloNumeros=(1 2 3 4 5 6)
arregloCadenas=(Marco, Antonio, Pedro, Susana)
arregloRangos=({A..Z} {10..20})

#Imprimir todos los valores
echo "Arreglo de Números:${arregloNumeros[*]}"
echo "Arreglo de Cadenas:${arregloCadenas[*]}"
echo "Arreglo de Números:${arregloRangos[*]}"

#Imprimir los tamaños de los arreglos
echo "Tamaño Arreglo de Números:${#arregloNumeros[*]}"
echo "Tamaño Arreglo de Cadenas:${#arregloCadenas[*]}"
echo "Tamaño Arreglo de Números:${#arregloRangos[*]}"

#Imprimir la posición 3 del arreglo de números, cadenas de rango
echo "Posición 3 Arreglo de Números:${arregloNumeros[3]}"
echo "Posición 3 Arreglo de Cadenas:${arregloCadenas[3]}"
echo "Posición 3 Arreglo de Rangos:${arregloRangos[3]}"

#Añadir y eliminar valores en un arreglo
arregloNumeros[7]=20
unset arregloNumeros[0]
echo "Arreglo de Números:${arregloNumeros[*]}"
echo "Tamaño arreglo de Números:${#arregloNumeros[*]}"```