Array Loops en Bash

A

En este artículo, le mostraremos los diversos métodos para recorrer arreglos en Bash. Los bucles de matriz son tan comunes en la programación que casi siempre necesitará usarlos en cualquier programación importante que realice. Para ayudar con esto, debe aprender y comprender los diversos tipos de matrices y cómo los recorrerá, que es exactamente lo que presentamos en este artículo.

Antes de continuar con el propósito principal de este tutorial / artículo, aprendamos un poco más sobre la programación con el shell Bash y luego mostraremos algunas construcciones de programación Bash comunes.

Una breve introducción al Bash Shell

Shell es un término de Unix para la interfaz de usuario interactiva con sistemas operativos. El shell es la capa de programación que comprende y ejecuta los comandos que ingresa un usuario. En algunos sistemas, el shell se denomina intérprete de comandos. Básicamente, cualquier cosa que pueda hacer con las herramientas de GUI OS en Linux, normalmente puede hacer lo mismo con un shell.

La mayoría de los sistemas operativos tipo Unix vienen con un shell como el Intento shell, Bourne shell, C shell (csh) y KornShell. Sin embargo, estos shells no siempre vienen preinstalados con distribuciones populares de Linux como Ubuntu, Cent OS, Kali, Fedora, etc. Aunque el popular shell Bash se envía con la mayoría de distribuciones de Linux y OSX.

El shell Bash es una versión mejorada del antiguo shell Bourne, que fue uno de los primeros shell Unix / Linux en uso general por parte de la base de usuarios. Tenía características limitadas en comparación con los shells de hoy, y debido a esto, la mayor parte del trabajo de programación se realizaba casi en su totalidad por servicios externos.

Bash, que es un shell compatible con POSIX, simplemente significa segundoourne-unganancia shana. Originalmente se creó como un reemplazo del shell Bourne y, por lo tanto, vino con muchas mejoras que no estaban disponibles en los antiguos shells.

Para encontrar el tipo o versión de Bash que su sistema operativo ha instalado, simplemente escriba el siguiente comando:

$ echo $BASH_VERSION
3.2.57(1)-release

Secuencias de comandos de Shell con Bash

Un script de shell es un archivo que contiene uno o más comandos que escribiría en la línea de comandos. En un script, estos comandos se ejecutan en serie de forma automática, al igual que un programa en C o Python. A continuación, se muestran algunos ejemplos de comandos comunes:

  • cat: Muestra contenido en un archivo o combina dos archivos juntos. El nombre original del comando ‘cat’ es ‘concatenar’
  • ls: Enumera archivos / carpetas en un directorio
  • pwd: Muestra la ruta de su directorio de trabajo actual
  • chmod: Modificar o cambiar los permisos de un archivo
  • chown: Cambia la propiedad de un archivo o programa de secuencia de comandos
  • mkdir: Crea un directorio
  • mv: Mover un archivo o carpeta de un directorio a otro
  • rm: Eliminar (eliminar) un archivo o directorio
  • cd: Cambia tu directorio de trabajo actual
  • exit: Cerrar o salir de una terminal

Hay muchos más comandos básicos que no se mencionan aquí, sobre los que puede encontrar información fácilmente dada la gran cantidad de documentación en Internet. Sin embargo, aprender los comandos básicos anteriores le enseñará mucho de lo que necesita saber.

Puede observar a lo largo de este artículo que cada primera línea de un script de shell comienza con un el asunto o hash-bang. Es un tipo especial de comentario que le dice al shell qué programa usar para ejecutar el archivo. Para los scripts de shell, este es el #!/bin/bash línea.

Ahora que ha estado expuesto a algunos comandos Bash comunes, es hora de comprender cómo usar matrices y bucles. Y, finalmente, mostraremos algunos ejemplos del mundo real de cómo puede recorrer matrices en scripts Bash.

Bucles en Bash

“Loops”, o “looping”, es simplemente una construcción en la que se ejecuta un evento particular o una secuencia de comandos hasta que se cumple una condición específica, que generalmente es establecida por el programador. Tenemos tres tipos de bucles disponibles para nosotros en la programación Bash:

  • mientras
  • para
  • hasta
Mientras bucle

Si alguna vez ha programado antes en cualquier idioma, probablemente ya sepa acerca de los bucles y cómo puede usarlos para controlar el flujo de un programa o script además del if, elify else. El bucle le permite iterar sobre una lista o un grupo de valores hasta que se cumpla una condición específica.

A continuación se muestra la sintaxis de while lazo:

while <list>
do
    <commands>
done

La condición dentro del while El bucle puede depender de variables declaradas previamente, según sus necesidades. Supongamos que hemos escrito un programa llamado count.sh. El programa del contador imprime los números del 0 al 10. Por lo tanto, nuestro programa del contador hará un “bucle” sólo del 0 al 10.

#!/bin/bash

count=0
while [ $count -le 10 ]
do
    echo "$count"
    count=$(( $count + 1 ))
done

La condición aquí es $count -le 10, que devolverá un true valor siempre que el $count variable es menor o igual que (-le) a 10. Cada vez que esta condición vuelve true, los comandos entre do y done se ejecutan.

Hasta bucle

Además de while, también podemos usar el until bucle que es muy similar al while lazo. La sintaxis del until bucle es el mismo que el while bucle, sin embargo, la principal diferencia es que la condición es opuesta a la de while. Aquí los comandos de bucle se ejecutan cada vez que la condición falla o regresa false.

#!/bin/bash

count=0
until [ $count -gt 10 ]
do
    echo "$count"
    count=$(( $count + 1 ))
done

Aquí el bucle se ejecuta cada vez $count no es mayor que (-gt) 10.

En bucle

Sintácticamente el for El bucle es un poco diferente al while o until bucles. Estos tipos de bucles manejan incrementar el contador por nosotros, mientras que antes teníamos que incrementarlo por nuestra cuenta.

La sintaxis del for bucle en Bash es:

#!/bin/bash

for (( n=1; n<=10; n++ ))
do
    echo "$n"
done

Dentro de la condición de bucle le decimos en qué número iniciar el contador (n=1), en qué número finalizar el contador (n<=10) y cuánto incrementar el contador en (n++).

Otra forma de usar este bucle es así:

#!/bin/bash

for user in Kate Jake Patt
do
    echo "$user"
done

Aquí ejecutamos el ciclo para cada instancia de cadena, que en este caso es “Kate”, “Jake” y “Patt”.

Matrices en Bash

En Bash, hay dos tipos de matrices. Están las matrices asociativas y las matrices indexadas por números enteros. Los elementos de las matrices se denominan con frecuencia por su número de índice, que es la posición en la que residen en la matriz. Estos números de índice son siempre números enteros que comienzan en 0.

Los arreglos asociativos son un poco más nuevos, ya que llegaron con la versión de Bash 4.0.

A continuación se muestra la sintaxis para declarar y usar una matriz indexada con números enteros:

#!/bin/bash

array=( A B C D E F G )
echo "${array[0]}"
echo "${array[1]}"
echo "${array[2]}"
echo "${array[3]}"
echo "${array[4]}"
echo "${array[5]}"
echo "${array[6]}"

En este artículo, nos centraremos en la matriz indexada con números enteros para nuestro tutorial de bucles de matriz, por lo que omitiremos cubrir las matrices asociativas en Bash por ahora, pero sepa que es bueno estar al tanto de su existencia.

Bucle sobre matrices

Ahora que hemos visto y entendido los comandos básicos del shell Bash, así como los conceptos básicos de bucles y arreglos en Bash, sigamos adelante y veamos un script útil usando los bucles y arreglos juntos.

En nuestro sencillo ejemplo a continuación, asumiremos que desea mostrar una lista de los usuarios registrados de su sitio web en la pantalla. La lista de usuarios se almacena en la variable users, que debe recorrer para mostrarlos.

#!/bin/bash

users=(John Harry Jake Scott Philis)
for u in "${users[@]}"
do
    echo "$u is a registered user"
done

Con esta sintaxis, recorrerá el users matriz, con cada nombre almacenado temporalmente en u. los [@] la sintaxis le dice al intérprete que esta es una matriz indexada sobre la que iteraremos.

Hay varias formas en que podemos usar los bucles de matriz en la programación, así que asegúrese de no limitarse a lo que ve aquí. Simplemente hemos mostrado los ejemplos más básicos, que puede mejorar y modificar para manejar su caso de uso.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad